blob: 43e587de8fe4a8374e920d1de49c88d6d1efcd35 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_ARC_COMMON_APP_STRUCT_TRAITS_H_
#define COMPONENTS_ARC_COMMON_APP_STRUCT_TRAITS_H_
#include "components/arc/app/arc_playstore_search_request_state.h"
#include "components/arc/common/app.mojom-shared.h"
namespace mojo {
template <>
struct EnumTraits<arc::mojom::AppDiscoveryRequestState,
arc::ArcPlayStoreSearchRequestState> {
using ArcState = arc::ArcPlayStoreSearchRequestState;
using MojoState = arc::mojom::AppDiscoveryRequestState;
static MojoState ToMojom(ArcState input) {
switch (input) {
case ArcState::SUCCESS:
return MojoState::SUCCESS;
case ArcState::CANCELED:
return MojoState::CANCELED;
case ArcState::ERROR_DEPRECATED:
return MojoState::ERROR_DEPRECATED;
case ArcState::PLAY_STORE_PROXY_NOT_AVAILABLE:
return MojoState::PLAY_STORE_PROXY_NOT_AVAILABLE;
case ArcState::FAILED_TO_CALL_CANCEL:
return MojoState::FAILED_TO_CALL_CANCEL;
case ArcState::FAILED_TO_CALL_FINDAPPS:
return MojoState::FAILED_TO_CALL_FINDAPPS;
case ArcState::REQUEST_HAS_INVALID_PARAMS:
return MojoState::REQUEST_HAS_INVALID_PARAMS;
case ArcState::REQUEST_TIMEOUT:
return MojoState::REQUEST_TIMEOUT;
case ArcState::PHONESKY_RESULT_REQUEST_CODE_UNMATCHED:
return MojoState::PHONESKY_RESULT_REQUEST_CODE_UNMATCHED;
case ArcState::PHONESKY_RESULT_SESSION_ID_UNMATCHED:
return MojoState::PHONESKY_RESULT_SESSION_ID_UNMATCHED;
case ArcState::PHONESKY_REQUEST_REQUEST_CODE_UNMATCHED:
return MojoState::PHONESKY_REQUEST_REQUEST_CODE_UNMATCHED;
case ArcState::PHONESKY_APP_DISCOVERY_NOT_AVAILABLE:
return MojoState::PHONESKY_APP_DISCOVERY_NOT_AVAILABLE;
case ArcState::PHONESKY_VERSION_NOT_SUPPORTED:
return MojoState::PHONESKY_VERSION_NOT_SUPPORTED;
case ArcState::PHONESKY_UNEXPECTED_EXCEPTION:
return MojoState::PHONESKY_UNEXPECTED_EXCEPTION;
case ArcState::PHONESKY_MALFORMED_QUERY:
return MojoState::PHONESKY_MALFORMED_QUERY;
case ArcState::PHONESKY_INTERNAL_ERROR:
return MojoState::PHONESKY_INTERNAL_ERROR;
case ArcState::PHONESKY_RESULT_INVALID_DATA:
return MojoState::PHONESKY_RESULT_INVALID_DATA;
case ArcState::CHROME_GOT_INVALID_RESULT:
case ArcState::STATE_COUNT:
break;
}
NOTREACHED();
return MojoState::SUCCESS;
}
static bool FromMojom(MojoState input, ArcState* out) {
switch (input) {
case MojoState::SUCCESS:
*out = ArcState::SUCCESS;
return true;
case MojoState::CANCELED:
*out = ArcState::CANCELED;
return true;
case MojoState::ERROR_DEPRECATED:
*out = ArcState::ERROR_DEPRECATED;
return true;
case MojoState::PLAY_STORE_PROXY_NOT_AVAILABLE:
*out = ArcState::PLAY_STORE_PROXY_NOT_AVAILABLE;
return true;
case MojoState::FAILED_TO_CALL_CANCEL:
*out = ArcState::FAILED_TO_CALL_CANCEL;
return true;
case MojoState::FAILED_TO_CALL_FINDAPPS:
*out = ArcState::FAILED_TO_CALL_FINDAPPS;
return true;
case MojoState::REQUEST_HAS_INVALID_PARAMS:
*out = ArcState::REQUEST_HAS_INVALID_PARAMS;
return true;
case MojoState::REQUEST_TIMEOUT:
*out = ArcState::REQUEST_TIMEOUT;
return true;
case MojoState::PHONESKY_RESULT_REQUEST_CODE_UNMATCHED:
return true;
*out = ArcState::PHONESKY_RESULT_REQUEST_CODE_UNMATCHED;
return true;
case MojoState::PHONESKY_RESULT_SESSION_ID_UNMATCHED:
*out = ArcState::PHONESKY_RESULT_SESSION_ID_UNMATCHED;
return true;
case MojoState::PHONESKY_REQUEST_REQUEST_CODE_UNMATCHED:
*out = ArcState::PHONESKY_REQUEST_REQUEST_CODE_UNMATCHED;
return true;
case MojoState::PHONESKY_APP_DISCOVERY_NOT_AVAILABLE:
*out = ArcState::PHONESKY_APP_DISCOVERY_NOT_AVAILABLE;
return true;
case MojoState::PHONESKY_VERSION_NOT_SUPPORTED:
*out = ArcState::PHONESKY_VERSION_NOT_SUPPORTED;
return true;
case MojoState::PHONESKY_UNEXPECTED_EXCEPTION:
*out = ArcState::PHONESKY_UNEXPECTED_EXCEPTION;
return true;
case MojoState::PHONESKY_MALFORMED_QUERY:
*out = ArcState::PHONESKY_MALFORMED_QUERY;
return true;
case MojoState::PHONESKY_INTERNAL_ERROR:
*out = ArcState::PHONESKY_INTERNAL_ERROR;
return true;
case MojoState::PHONESKY_RESULT_INVALID_DATA:
*out = ArcState::PHONESKY_RESULT_INVALID_DATA;
return true;
}
NOTREACHED();
return false;
}
};
} // namespace mojo
#endif // COMPONENTS_ARC_COMMON_APP_STRUCT_TRAITS_H_