blob: 9e2a42454fc7ce6ffe119dd5fca4226f62425785 [file] [log] [blame]
// Copyright 2016 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 THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_FIND_IN_PAGE_MOJOM_SHARED_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_FIND_IN_PAGE_MOJOM_SHARED_H_
#include <stdint.h>
#include <functional>
#include <ostream>
#include <type_traits>
#include <utility>
#include "base/compiler_specific.h"
#include "base/containers/flat_map.h"
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "third_party/blink/public/mojom/frame/find_in_page.mojom-shared-internal.h"
#include "ui/gfx/geometry/mojo/geometry.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/bindings/native_enum.h"
#include "mojo/public/cpp/bindings/lib/native_struct_serialization.h"
#include "base/component_export.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace blink {
namespace mojom {
class FindOptionsDataView;
} // namespace mojom
} // namespace blink
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::blink::mojom::FindOptionsDataView> {
using Data = ::blink::mojom::internal::FindOptions_Data;
using DataAsArrayElement = Pointer<Data>;
static constexpr MojomTypeCategory category = MojomTypeCategory::STRUCT;
};
} // namespace internal
} // namespace mojo
namespace blink {
namespace mojom {
// @generated_from: blink.mojom.StopFindAction
enum class StopFindAction : int32_t {
// @generated_from: blink.mojom.StopFindAction.kStopFindActionClearSelection
kStopFindActionClearSelection,
// @generated_from: blink.mojom.StopFindAction.kStopFindActionKeepSelection
kStopFindActionKeepSelection,
// @generated_from: blink.mojom.StopFindAction.kStopFindActionActivateSelection
kStopFindActionActivateSelection,
kMinValue = 0,
kMaxValue = 2,
};
COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) std::ostream& operator<<(std::ostream& os, StopFindAction value);
inline bool IsKnownEnumValue(StopFindAction value) {
return internal::StopFindAction_Data::IsKnownValue(
static_cast<int32_t>(value));
}
// @generated_from: blink.mojom.FindMatchUpdateType
enum class FindMatchUpdateType : int32_t {
// @generated_from: blink.mojom.FindMatchUpdateType.kFinalUpdate
kFinalUpdate,
// @generated_from: blink.mojom.FindMatchUpdateType.kMoreUpdatesComing
kMoreUpdatesComing,
kMinValue = 0,
kMaxValue = 1,
};
COMPONENT_EXPORT(MOJOM_SHARED_BLINK_COMMON_EXPORT) std::ostream& operator<<(std::ostream& os, FindMatchUpdateType value);
inline bool IsKnownEnumValue(FindMatchUpdateType value) {
return internal::FindMatchUpdateType_Data::IsKnownValue(
static_cast<int32_t>(value));
}
// Interface base classes. They are used for type safety check.
class FindInPageInterfaceBase {};
using FindInPagePtrDataView =
mojo::InterfacePtrDataView<FindInPageInterfaceBase>;
using FindInPageRequestDataView =
mojo::InterfaceRequestDataView<FindInPageInterfaceBase>;
using FindInPageAssociatedPtrInfoDataView =
mojo::AssociatedInterfacePtrInfoDataView<FindInPageInterfaceBase>;
using FindInPageAssociatedRequestDataView =
mojo::AssociatedInterfaceRequestDataView<FindInPageInterfaceBase>;
class FindInPageClientInterfaceBase {};
using FindInPageClientPtrDataView =
mojo::InterfacePtrDataView<FindInPageClientInterfaceBase>;
using FindInPageClientRequestDataView =
mojo::InterfaceRequestDataView<FindInPageClientInterfaceBase>;
using FindInPageClientAssociatedPtrInfoDataView =
mojo::AssociatedInterfacePtrInfoDataView<FindInPageClientInterfaceBase>;
using FindInPageClientAssociatedRequestDataView =
mojo::AssociatedInterfaceRequestDataView<FindInPageClientInterfaceBase>;
class FindOptionsDataView {
public:
FindOptionsDataView() {}
FindOptionsDataView(
internal::FindOptions_Data* data,
mojo::internal::SerializationContext* context)
: data_(data) {}
bool is_null() const { return !data_; }
bool forward() const {
return data_->forward;
}
bool match_case() const {
return data_->match_case;
}
bool find_next() const {
return data_->find_next;
}
bool force() const {
return data_->force;
}
bool run_synchronously_for_testing() const {
return data_->run_synchronously_for_testing;
}
private:
internal::FindOptions_Data* data_ = nullptr;
};
} // namespace mojom
} // namespace blink
namespace std {
template <>
struct hash<::blink::mojom::StopFindAction>
: public mojo::internal::EnumHashImpl<::blink::mojom::StopFindAction> {};
template <>
struct hash<::blink::mojom::FindMatchUpdateType>
: public mojo::internal::EnumHashImpl<::blink::mojom::FindMatchUpdateType> {};
} // namespace std
namespace mojo {
template <>
struct EnumTraits<::blink::mojom::StopFindAction, ::blink::mojom::StopFindAction> {
static ::blink::mojom::StopFindAction ToMojom(::blink::mojom::StopFindAction input) { return input; }
static bool FromMojom(::blink::mojom::StopFindAction input, ::blink::mojom::StopFindAction* output) {
*output = input;
return true;
}
};
namespace internal {
template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::StopFindAction, MaybeConstUserType> {
using UserType = typename std::remove_const<MaybeConstUserType>::type;
using Traits = EnumTraits<::blink::mojom::StopFindAction, UserType>;
static void Serialize(UserType input, int32_t* output) {
*output = static_cast<int32_t>(Traits::ToMojom(input));
}
static bool Deserialize(int32_t input, UserType* output) {
return Traits::FromMojom(static_cast<::blink::mojom::StopFindAction>(input), output);
}
};
} // namespace internal
template <>
struct EnumTraits<::blink::mojom::FindMatchUpdateType, ::blink::mojom::FindMatchUpdateType> {
static ::blink::mojom::FindMatchUpdateType ToMojom(::blink::mojom::FindMatchUpdateType input) { return input; }
static bool FromMojom(::blink::mojom::FindMatchUpdateType input, ::blink::mojom::FindMatchUpdateType* output) {
*output = input;
return true;
}
};
namespace internal {
template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::FindMatchUpdateType, MaybeConstUserType> {
using UserType = typename std::remove_const<MaybeConstUserType>::type;
using Traits = EnumTraits<::blink::mojom::FindMatchUpdateType, UserType>;
static void Serialize(UserType input, int32_t* output) {
*output = static_cast<int32_t>(Traits::ToMojom(input));
}
static bool Deserialize(int32_t input, UserType* output) {
return Traits::FromMojom(static_cast<::blink::mojom::FindMatchUpdateType>(input), output);
}
};
} // namespace internal
namespace internal {
template <typename MaybeConstUserType>
struct Serializer<::blink::mojom::FindOptionsDataView, MaybeConstUserType> {
using UserType = typename std::remove_const<MaybeConstUserType>::type;
using Traits = StructTraits<::blink::mojom::FindOptionsDataView, UserType>;
static void Serialize(MaybeConstUserType& input,
Buffer* buffer,
::blink::mojom::internal::FindOptions_Data::BufferWriter* output,
SerializationContext* context) {
if (CallIsNullIfExists<Traits>(input))
return;
(*output).Allocate(buffer);
(*output)->forward = Traits::forward(input);
(*output)->match_case = Traits::match_case(input);
(*output)->find_next = Traits::find_next(input);
(*output)->force = Traits::force(input);
(*output)->run_synchronously_for_testing = Traits::run_synchronously_for_testing(input);
}
static bool Deserialize(::blink::mojom::internal::FindOptions_Data* input,
UserType* output,
SerializationContext* context) {
if (!input)
return CallSetToNullIfExists<Traits>(output);
::blink::mojom::FindOptionsDataView data_view(input, context);
return Traits::Read(data_view, output);
}
};
} // namespace internal
} // namespace mojo
namespace blink {
namespace mojom {
} // namespace mojom
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_FIND_IN_PAGE_MOJOM_SHARED_H_
/* Metadata comment
eyJtZXRhIjogW3siZW5kIjogMTg5MSwgImJlZ2luIjogMTg3NywgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogImJsaW5rLm1vam9tLlN0b3BGaW5kQWN0aW9uIn19LCB7
ImVuZCI6IDIwMTUsICJiZWdpbiI6IDE5ODYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJibGluay5tb2pvbS5TdG9wRmluZEFjdGlvbi5rU3RvcEZpbmRBY3Rpb25D
bGVhclNlbGVjdGlvbiJ9fSwgeyJlbmQiOiAyMTI2LCAiYmVnaW4iOiAyMDk4LCAiZWRnZSI6ICIl
L2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUi
OiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJs
YW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiYmxpbmsubW9qb20uU3RvcEZpbmRBY3Rp
b24ua1N0b3BGaW5kQWN0aW9uS2VlcFNlbGVjdGlvbiJ9fSwgeyJlbmQiOiAyMjQ1LCAiYmVnaW4i
OiAyMjEzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAiYmxpbmsu
bW9qb20uU3RvcEZpbmRBY3Rpb24ua1N0b3BGaW5kQWN0aW9uQWN0aXZhdGVTZWxlY3Rpb24ifX0s
IHsiZW5kIjogMjYzMSwgImJlZ2luIjogMjYxMiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
YXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hy
b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20i
LCAic2lnbmF0dXJlIjogImJsaW5rLm1vam9tLkZpbmRNYXRjaFVwZGF0ZVR5cGUifX0sIHsiZW5k
IjogMjcyNiwgImJlZ2luIjogMjcxNCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs
ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln
bmF0dXJlIjogImJsaW5rLm1vam9tLkZpbmRNYXRjaFVwZGF0ZVR5cGUua0ZpbmFsVXBkYXRlIn19
LCB7ImVuZCI6IDI4MjIsICJiZWdpbiI6IDI4MDQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t
IiwgInNpZ25hdHVyZSI6ICJibGluay5tb2pvbS5GaW5kTWF0Y2hVcGRhdGVUeXBlLmtNb3JlVXBk
YXRlc0NvbWluZyJ9fV0sICJ0eXBlIjogImt5dGhlMCJ9
*/