| // 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 SERVICES_DEVICE_PUBLIC_MOJOM_SENSOR_MOJOM_SHARED_H_ |
| #define SERVICES_DEVICE_PUBLIC_MOJOM_SENSOR_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 "services/device/public/mojom/sensor.mojom-shared-internal.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" |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace device { |
| namespace mojom { |
| class SensorConfigurationDataView; |
| |
| |
| |
| } // namespace mojom |
| } // namespace device |
| |
| namespace mojo { |
| namespace internal { |
| |
| template <> |
| struct MojomTypeTraits<::device::mojom::SensorConfigurationDataView> { |
| using Data = ::device::mojom::internal::SensorConfiguration_Data; |
| using DataAsArrayElement = Pointer<Data>; |
| static constexpr MojomTypeCategory category = MojomTypeCategory::STRUCT; |
| }; |
| |
| } // namespace internal |
| } // namespace mojo |
| |
| |
| namespace device { |
| namespace mojom { |
| |
| |
| // @generated_from: device.mojom.SensorType |
| enum class SensorType : int32_t { |
| |
| // @generated_from: device.mojom.SensorType.AMBIENT_LIGHT |
| AMBIENT_LIGHT, |
| |
| // @generated_from: device.mojom.SensorType.PROXIMITY |
| PROXIMITY, |
| |
| // @generated_from: device.mojom.SensorType.ACCELEROMETER |
| ACCELEROMETER, |
| |
| // @generated_from: device.mojom.SensorType.LINEAR_ACCELERATION |
| LINEAR_ACCELERATION, |
| |
| // @generated_from: device.mojom.SensorType.GYROSCOPE |
| GYROSCOPE, |
| |
| // @generated_from: device.mojom.SensorType.MAGNETOMETER |
| MAGNETOMETER, |
| |
| // @generated_from: device.mojom.SensorType.PRESSURE |
| PRESSURE, |
| |
| // @generated_from: device.mojom.SensorType.ABSOLUTE_ORIENTATION_EULER_ANGLES |
| ABSOLUTE_ORIENTATION_EULER_ANGLES, |
| |
| // @generated_from: device.mojom.SensorType.ABSOLUTE_ORIENTATION_QUATERNION |
| ABSOLUTE_ORIENTATION_QUATERNION, |
| |
| // @generated_from: device.mojom.SensorType.RELATIVE_ORIENTATION_EULER_ANGLES |
| RELATIVE_ORIENTATION_EULER_ANGLES, |
| |
| // @generated_from: device.mojom.SensorType.RELATIVE_ORIENTATION_QUATERNION |
| RELATIVE_ORIENTATION_QUATERNION, |
| kMinValue = 0, |
| kMaxValue = 10, |
| }; |
| |
| std::ostream& operator<<(std::ostream& os, SensorType value); |
| inline bool IsKnownEnumValue(SensorType value) { |
| return internal::SensorType_Data::IsKnownValue( |
| static_cast<int32_t>(value)); |
| } |
| |
| |
| // @generated_from: device.mojom.ReportingMode |
| enum class ReportingMode : int32_t { |
| |
| // @generated_from: device.mojom.ReportingMode.ON_CHANGE |
| ON_CHANGE, |
| |
| // @generated_from: device.mojom.ReportingMode.CONTINUOUS |
| CONTINUOUS, |
| kMinValue = 0, |
| kMaxValue = 1, |
| }; |
| |
| std::ostream& operator<<(std::ostream& os, ReportingMode value); |
| inline bool IsKnownEnumValue(ReportingMode value) { |
| return internal::ReportingMode_Data::IsKnownValue( |
| static_cast<int32_t>(value)); |
| } |
| // Interface base classes. They are used for type safety check. |
| class SensorInterfaceBase {}; |
| |
| using SensorPtrDataView = |
| mojo::InterfacePtrDataView<SensorInterfaceBase>; |
| using SensorRequestDataView = |
| mojo::InterfaceRequestDataView<SensorInterfaceBase>; |
| using SensorAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<SensorInterfaceBase>; |
| using SensorAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<SensorInterfaceBase>; |
| class SensorClientInterfaceBase {}; |
| |
| using SensorClientPtrDataView = |
| mojo::InterfacePtrDataView<SensorClientInterfaceBase>; |
| using SensorClientRequestDataView = |
| mojo::InterfaceRequestDataView<SensorClientInterfaceBase>; |
| using SensorClientAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<SensorClientInterfaceBase>; |
| using SensorClientAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<SensorClientInterfaceBase>; |
| class SensorConfigurationDataView { |
| public: |
| SensorConfigurationDataView() {} |
| |
| SensorConfigurationDataView( |
| internal::SensorConfiguration_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| double frequency() const { |
| return data_->frequency; |
| } |
| private: |
| internal::SensorConfiguration_Data* data_ = nullptr; |
| }; |
| |
| |
| |
| } // namespace mojom |
| } // namespace device |
| |
| namespace std { |
| |
| template <> |
| struct hash<::device::mojom::SensorType> |
| : public mojo::internal::EnumHashImpl<::device::mojom::SensorType> {}; |
| |
| template <> |
| struct hash<::device::mojom::ReportingMode> |
| : public mojo::internal::EnumHashImpl<::device::mojom::ReportingMode> {}; |
| |
| } // namespace std |
| |
| namespace mojo { |
| |
| |
| template <> |
| struct EnumTraits<::device::mojom::SensorType, ::device::mojom::SensorType> { |
| static ::device::mojom::SensorType ToMojom(::device::mojom::SensorType input) { return input; } |
| static bool FromMojom(::device::mojom::SensorType input, ::device::mojom::SensorType* output) { |
| *output = input; |
| return true; |
| } |
| }; |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::device::mojom::SensorType, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = EnumTraits<::device::mojom::SensorType, 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<::device::mojom::SensorType>(input), output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| |
| template <> |
| struct EnumTraits<::device::mojom::ReportingMode, ::device::mojom::ReportingMode> { |
| static ::device::mojom::ReportingMode ToMojom(::device::mojom::ReportingMode input) { return input; } |
| static bool FromMojom(::device::mojom::ReportingMode input, ::device::mojom::ReportingMode* output) { |
| *output = input; |
| return true; |
| } |
| }; |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::device::mojom::ReportingMode, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = EnumTraits<::device::mojom::ReportingMode, 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<::device::mojom::ReportingMode>(input), output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::device::mojom::SensorConfigurationDataView, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = StructTraits<::device::mojom::SensorConfigurationDataView, UserType>; |
| |
| static void Serialize(MaybeConstUserType& input, |
| Buffer* buffer, |
| ::device::mojom::internal::SensorConfiguration_Data::BufferWriter* output, |
| SerializationContext* context) { |
| if (CallIsNullIfExists<Traits>(input)) |
| return; |
| (*output).Allocate(buffer); |
| (*output)->frequency = Traits::frequency(input); |
| } |
| |
| static bool Deserialize(::device::mojom::internal::SensorConfiguration_Data* input, |
| UserType* output, |
| SerializationContext* context) { |
| if (!input) |
| return CallSetToNullIfExists<Traits>(output); |
| |
| ::device::mojom::SensorConfigurationDataView data_view(input, context); |
| return Traits::Read(data_view, output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| } // namespace mojo |
| |
| |
| namespace device { |
| namespace mojom { |
| |
| |
| |
| |
| } // namespace mojom |
| } // namespace device |
| |
| #endif // SERVICES_DEVICE_PUBLIC_MOJOM_SENSOR_MOJOM_SHARED_H_
|
| /* Metadata comment
|
| eyJtZXRhIjogW3siZW5kIjogMTc4MCwgImJlZ2luIjogMTc3MCwgImVkZ2UiOiAiJS9reXRoZS9l
|
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
|
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
|
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JUeXBlIn19LCB7ImVu
|
| ZCI6IDE4NjksICJiZWdpbiI6IDE4NTYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
|
| LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
|
| Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
|
| Z25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yVHlwZS5BTUJJRU5UX0xJR0hUIn19LCB7ImVu
|
| ZCI6IDE5MzksICJiZWdpbiI6IDE5MzAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
|
| LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
|
| Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
|
| Z25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yVHlwZS5QUk9YSU1JVFkifX0sIHsiZW5kIjog
|
| MjAxNywgImJlZ2luIjogMjAwNCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0
|
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
|
| Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0
|
| dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JUeXBlLkFDQ0VMRVJPTUVURVIifX0sIHsiZW5kIjog
|
| MjEwNywgImJlZ2luIjogMjA4OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0
|
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
|
| Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0
|
| dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JUeXBlLkxJTkVBUl9BQ0NFTEVSQVRJT04ifX0sIHsi
|
| ZW5kIjogMjE3NywgImJlZ2luIjogMjE2OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
|
| cyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21p
|
| dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAi
|
| c2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JUeXBlLkdZUk9TQ09QRSJ9fSwgeyJlbmQi
|
| OiAyMjUzLCAiYmVnaW4iOiAyMjQxLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwg
|
| InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5n
|
| b29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWdu
|
| YXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNvclR5cGUuTUFHTkVUT01FVEVSIn19LCB7ImVuZCI6
|
| IDIzMjEsICJiZWdpbiI6IDIzMTMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAi
|
| dHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdv
|
| b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25h
|
| dHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yVHlwZS5QUkVTU1VSRSJ9fSwgeyJlbmQiOiAyNDM5
|
| LCAiYmVnaW4iOiAyNDA2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi
|
| OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
|
| b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi
|
| OiAiZGV2aWNlLm1vam9tLlNlbnNvclR5cGUuQUJTT0xVVEVfT1JJRU5UQVRJT05fRVVMRVJfQU5H
|
| TEVTIn19LCB7ImVuZCI6IDI1NTMsICJiZWdpbiI6IDI1MjIsICJlZGdlIjogIiUva3l0aGUvZWRn
|
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
|
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
|
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yVHlwZS5BQlNPTFVURV9P
|
| UklFTlRBVElPTl9RVUFURVJOSU9OIn19LCB7ImVuZCI6IDI2NzEsICJiZWdpbiI6IDI2MzgsICJl
|
| ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
|
| ICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0v
|
| c3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vu
|
| c29yVHlwZS5SRUxBVElWRV9PUklFTlRBVElPTl9FVUxFUl9BTkdMRVMifX0sIHsiZW5kIjogMjc4
|
| NSwgImJlZ2luIjogMjc1NCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBl
|
| IjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xl
|
| c291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJl
|
| IjogImRldmljZS5tb2pvbS5TZW5zb3JUeXBlLlJFTEFUSVZFX09SSUVOVEFUSU9OX1FVQVRFUk5J
|
| T04ifX0sIHsiZW5kIjogMzA5OSwgImJlZ2luIjogMzA4NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
|
| L2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMi
|
| OiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAi
|
| bW9qb20iLCAic2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5SZXBvcnRpbmdNb2RlIn19LCB7ImVu
|
| ZCI6IDMxODMsICJiZWdpbiI6IDMxNzQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
|
| LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
|
| Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
|
| Z25hdHVyZSI6ICJkZXZpY2UubW9qb20uUmVwb3J0aW5nTW9kZS5PTl9DSEFOR0UifX0sIHsiZW5k
|
| IjogMzI1OCwgImJlZ2luIjogMzI0OCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs
|
| ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u
|
| Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln
|
| bmF0dXJlIjogImRldmljZS5tb2pvbS5SZXBvcnRpbmdNb2RlLkNPTlRJTlVPVVMifX1dLCAidHlw
|
| ZSI6ICJreXRoZTAifQ==
|
| */ |