blob: 9928ff7928e99a71e489d63364e0052a1d0b9d84 [file] [log] [blame]
// Copyright 2019 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.
#include "mojo/public/cpp/base/message_pump_type_mojom_traits.h"
#include "build/build_config.h"
namespace mojo {
// static
mojo_base::mojom::MessagePumpType
EnumTraits<mojo_base::mojom::MessagePumpType, base::MessagePumpType>::ToMojom(
base::MessagePumpType input) {
switch (input) {
case base::MessagePumpType::DEFAULT:
return mojo_base::mojom::MessagePumpType::kDefault;
case base::MessagePumpType::UI:
return mojo_base::mojom::MessagePumpType::kUi;
case base::MessagePumpType::CUSTOM:
return mojo_base::mojom::MessagePumpType::kCustom;
case base::MessagePumpType::IO:
return mojo_base::mojom::MessagePumpType::kIo;
#if defined(OS_ANDROID)
case base::MessagePumpType::JAVA:
return mojo_base::mojom::MessagePumpType::kJava;
#endif
#if defined(OS_MACOSX)
case base::MessagePumpType::NS_RUNLOOP:
return mojo_base::mojom::MessagePumpType::kNsRunloop;
#endif
#if defined(OS_WIN)
case base::MessagePumpType::UI_WITH_WM_QUIT_SUPPORT:
return mojo_base::mojom::MessagePumpType::kUiWithWmQuitSupport;
#endif
}
NOTREACHED();
return mojo_base::mojom::MessagePumpType::kDefault;
}
// static
bool EnumTraits<mojo_base::mojom::MessagePumpType, base::MessagePumpType>::
FromMojom(mojo_base::mojom::MessagePumpType input,
base::MessagePumpType* output) {
switch (input) {
case mojo_base::mojom::MessagePumpType::kDefault:
*output = base::MessagePumpType::DEFAULT;
return true;
case mojo_base::mojom::MessagePumpType::kUi:
*output = base::MessagePumpType::UI;
return true;
case mojo_base::mojom::MessagePumpType::kCustom:
*output = base::MessagePumpType::CUSTOM;
return true;
case mojo_base::mojom::MessagePumpType::kIo:
*output = base::MessagePumpType::IO;
return true;
#if defined(OS_ANDROID)
case mojo_base::mojom::MessagePumpType::kJava:
*output = base::MessagePumpType::JAVA;
return true;
#endif
#if defined(OS_MACOSX)
case mojo_base::mojom::MessagePumpType::kNsRunloop:
*output = base::MessagePumpType::NS_RUNLOOP;
return true;
#endif
#if defined(OS_WIN)
case mojo_base::mojom::MessagePumpType::kUiWithWmQuitSupport:
*output = base::MessagePumpType::UI_WITH_WM_QUIT_SUPPORT;
return true;
#endif
}
return false;
}
} // namespace mojo