| // services/device/public/mojom/sensor_provider.mojom.h is auto generated by mojom_bindings_generator.py, do not edit |
| |
| // Copyright 2013 The Chromium Authors |
| // 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_PROVIDER_MOJOM_H_ |
| #define SERVICES_DEVICE_PUBLIC_MOJOM_SENSOR_PROVIDER_MOJOM_H_ |
| |
| #include <stdint.h> |
| |
| #include <limits> |
| #include <optional> |
| #include <type_traits> |
| #include <utility> |
| |
| #include "base/types/cxx23_to_underlying.h" |
| #include "mojo/public/cpp/bindings/clone_traits.h" |
| #include "mojo/public/cpp/bindings/equals_traits.h" |
| #include "mojo/public/cpp/bindings/lib/serialization.h" |
| #include "mojo/public/cpp/bindings/struct_ptr.h" |
| #include "mojo/public/cpp/bindings/struct_traits.h" |
| #include "mojo/public/cpp/bindings/union_traits.h" |
| |
| #include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h" |
| |
| #include "services/device/public/mojom/sensor_provider.mojom-features.h" |
| #include "services/device/public/mojom/sensor_provider.mojom-shared.h" |
| #include "services/device/public/mojom/sensor_provider.mojom-forward.h" |
| #include "mojo/public/mojom/base/shared_memory.mojom.h" |
| #include "services/device/public/mojom/sensor.mojom.h" |
| #include <string> |
| #include <vector> |
| |
| #include "mojo/public/cpp/bindings/lib/control_message_handler.h" |
| #include "mojo/public/cpp/bindings/lib/message_size_estimator.h" |
| #include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h" |
| |
| |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace device::mojom { |
| |
| class SensorProviderProxy; |
| |
| template <typename ImplRefTraits> |
| class SensorProviderStub; |
| |
| class SensorProviderRequestValidator; |
| class SensorProviderResponseValidator; |
| |
| |
| // @generated_from: device.mojom.SensorProvider |
| class SensorProvider |
| : public SensorProviderInterfaceBase { |
| public: |
| using IPCStableHashFunction = uint32_t(*)(); |
| |
| static const char Name_[]; |
| static IPCStableHashFunction MessageToMethodInfo_(mojo::Message& message); |
| static const char* MessageToMethodName_(mojo::Message& message); |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasUninterruptableMethods_ = false; |
| |
| using Base_ = SensorProviderInterfaceBase; |
| using Proxy_ = SensorProviderProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = SensorProviderStub<ImplRefTraits>; |
| |
| using RequestValidator_ = SensorProviderRequestValidator; |
| using ResponseValidator_ = SensorProviderResponseValidator; |
| enum MethodMinVersions : uint32_t { |
| kGetSensorMinVersion = 0, |
| kCreateVirtualSensorMinVersion = 0, |
| kUpdateVirtualSensorMinVersion = 0, |
| kRemoveVirtualSensorMinVersion = 0, |
| kGetVirtualSensorInformationMinVersion = 0, |
| }; |
| |
| // crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK |
| // with not having this data in traces there. |
| #if !BUILDFLAG(IS_FUCHSIA) |
| struct GetSensor_Sym { |
| NOINLINE static uint32_t IPCStableHash(); |
| }; |
| struct CreateVirtualSensor_Sym { |
| NOINLINE static uint32_t IPCStableHash(); |
| }; |
| struct UpdateVirtualSensor_Sym { |
| NOINLINE static uint32_t IPCStableHash(); |
| }; |
| struct RemoveVirtualSensor_Sym { |
| NOINLINE static uint32_t IPCStableHash(); |
| }; |
| struct GetVirtualSensorInformation_Sym { |
| NOINLINE static uint32_t IPCStableHash(); |
| }; |
| #endif // !BUILDFLAG(IS_FUCHSIA) |
| virtual ~SensorProvider() = default; |
| |
| |
| using GetSensorCallback = base::OnceCallback<void(SensorCreationResult, SensorInitParamsPtr)>; |
| |
| // @generated_from: device.mojom.SensorProvider.GetSensor |
| virtual void GetSensor(::device::mojom::SensorType type, GetSensorCallback callback) = 0; |
| |
| |
| using CreateVirtualSensorCallback = base::OnceCallback<void(CreateVirtualSensorResult)>; |
| |
| // @generated_from: device.mojom.SensorProvider.CreateVirtualSensor |
| virtual void CreateVirtualSensor(::device::mojom::SensorType type, VirtualSensorMetadataPtr metadata, CreateVirtualSensorCallback callback) = 0; |
| |
| |
| using UpdateVirtualSensorCallback = base::OnceCallback<void(UpdateVirtualSensorResult)>; |
| |
| // @generated_from: device.mojom.SensorProvider.UpdateVirtualSensor |
| virtual void UpdateVirtualSensor(::device::mojom::SensorType type, const ::device::SensorReading& reading, UpdateVirtualSensorCallback callback) = 0; |
| |
| |
| using RemoveVirtualSensorCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: device.mojom.SensorProvider.RemoveVirtualSensor |
| virtual void RemoveVirtualSensor(::device::mojom::SensorType type, RemoveVirtualSensorCallback callback) = 0; |
| |
| |
| using GetVirtualSensorInformationCallback = base::OnceCallback<void(GetVirtualSensorInformationResultPtr)>; |
| |
| // @generated_from: device.mojom.SensorProvider.GetVirtualSensorInformation |
| virtual void GetVirtualSensorInformation(::device::mojom::SensorType type, GetVirtualSensorInformationCallback callback) = 0; |
| }; |
| |
| |
| |
| // @generated_from: device.mojom.SensorProvider |
| class SensorProviderProxy |
| : public SensorProvider { |
| public: |
| using InterfaceType = SensorProvider; |
| |
| explicit SensorProviderProxy(mojo::MessageReceiverWithResponder* receiver); |
| |
| // @generated_from: device.mojom.SensorProvider.GetSensor |
| void GetSensor(::device::mojom::SensorType type, GetSensorCallback callback) final; |
| |
| // @generated_from: device.mojom.SensorProvider.CreateVirtualSensor |
| void CreateVirtualSensor(::device::mojom::SensorType type, VirtualSensorMetadataPtr metadata, CreateVirtualSensorCallback callback) final; |
| |
| // @generated_from: device.mojom.SensorProvider.UpdateVirtualSensor |
| void UpdateVirtualSensor(::device::mojom::SensorType type, const ::device::SensorReading& reading, UpdateVirtualSensorCallback callback) final; |
| |
| // @generated_from: device.mojom.SensorProvider.RemoveVirtualSensor |
| void RemoveVirtualSensor(::device::mojom::SensorType type, RemoveVirtualSensorCallback callback) final; |
| |
| // @generated_from: device.mojom.SensorProvider.GetVirtualSensorInformation |
| void GetVirtualSensorInformation(::device::mojom::SensorType type, GetVirtualSensorInformationCallback callback) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| class SensorProviderStubDispatch { |
| public: |
| static bool Accept(SensorProvider* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| SensorProvider* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<SensorProvider>> |
| class SensorProviderStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| SensorProviderStub() = default; |
| ~SensorProviderStub() override = default; |
| |
| void set_sink(ImplPointerType sink) { sink_ = std::move(sink); } |
| ImplPointerType& sink() { return sink_; } |
| |
| bool Accept(mojo::Message* message) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return SensorProviderStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return SensorProviderStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class SensorProviderRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class SensorProviderResponseValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| |
| |
| |
| |
| |
| |
| // @generated_from: device.mojom.VirtualSensorMetadata |
| class VirtualSensorMetadata { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<VirtualSensorMetadata, T>::value>; |
| using DataView = VirtualSensorMetadataDataView; |
| using Data_ = internal::VirtualSensorMetadata_Data; |
| |
| template <typename... Args> |
| static VirtualSensorMetadataPtr New(Args&&... args) { |
| return VirtualSensorMetadataPtr( |
| std::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static VirtualSensorMetadataPtr From(const U& u) { |
| return mojo::TypeConverter<VirtualSensorMetadataPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, VirtualSensorMetadata>::Convert(*this); |
| } |
| |
| |
| VirtualSensorMetadata(); |
| |
| VirtualSensorMetadata( |
| bool available, |
| std::optional<double> maximum_frequency, |
| std::optional<double> minimum_frequency, |
| std::optional<::device::mojom::ReportingMode> reporting_mode); |
| |
| |
| ~VirtualSensorMetadata(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = VirtualSensorMetadataPtr> |
| VirtualSensorMetadataPtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool operator!=(const T& rhs) const { return !operator==(rhs); } |
| template <typename UserType> |
| static std::vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| VirtualSensorMetadata::DataView, std::vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| VirtualSensorMetadata::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::VirtualSensorMetadata_UnserializedMessageContext< |
| UserType, VirtualSensorMetadata::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<VirtualSensorMetadata::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const std::vector<uint8_t>& input, |
| UserType* output) { |
| return VirtualSensorMetadata::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::VirtualSensorMetadata_UnserializedMessageContext< |
| UserType, VirtualSensorMetadata::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<VirtualSensorMetadata::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: device.mojom.VirtualSensorMetadata.available |
| bool available; |
| |
| // @generated_from: device.mojom.VirtualSensorMetadata.maximum_frequency |
| std::optional<double> maximum_frequency; |
| |
| // @generated_from: device.mojom.VirtualSensorMetadata.minimum_frequency |
| std::optional<double> minimum_frequency; |
| |
| // @generated_from: device.mojom.VirtualSensorMetadata.reporting_mode |
| std::optional<::device::mojom::ReportingMode> reporting_mode; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: device.mojom.VirtualSensorInformation |
| class VirtualSensorInformation { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<VirtualSensorInformation, T>::value>; |
| using DataView = VirtualSensorInformationDataView; |
| using Data_ = internal::VirtualSensorInformation_Data; |
| |
| template <typename... Args> |
| static VirtualSensorInformationPtr New(Args&&... args) { |
| return VirtualSensorInformationPtr( |
| std::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static VirtualSensorInformationPtr From(const U& u) { |
| return mojo::TypeConverter<VirtualSensorInformationPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, VirtualSensorInformation>::Convert(*this); |
| } |
| |
| |
| VirtualSensorInformation(); |
| |
| explicit VirtualSensorInformation( |
| double sampling_frequency); |
| |
| |
| ~VirtualSensorInformation(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = VirtualSensorInformationPtr> |
| VirtualSensorInformationPtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool operator!=(const T& rhs) const { return !operator==(rhs); } |
| size_t Hash(size_t seed) const; |
| template <typename UserType> |
| static std::vector<uint8_t> Serialize(UserType* input) { |
| return mojo::internal::SerializeImpl< |
| VirtualSensorInformation::DataView, std::vector<uint8_t>>(input); |
| } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| VirtualSensorInformation::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::VirtualSensorInformation_UnserializedMessageContext< |
| UserType, VirtualSensorInformation::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<VirtualSensorInformation::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const std::vector<uint8_t>& input, |
| UserType* output) { |
| return VirtualSensorInformation::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::VirtualSensorInformation_UnserializedMessageContext< |
| UserType, VirtualSensorInformation::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<VirtualSensorInformation::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: device.mojom.VirtualSensorInformation.sampling_frequency |
| double sampling_frequency; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult |
| class GetVirtualSensorInformationResult { |
| public: |
| using DataView = GetVirtualSensorInformationResultDataView; |
| using Data_ = internal::GetVirtualSensorInformationResult_Data; |
| using Tag = Data_::GetVirtualSensorInformationResult_Tag; |
| |
| template <typename... Args> |
| static GetVirtualSensorInformationResultPtr New(Args&&... args) { |
| static_assert( |
| sizeof...(args) < 0, |
| "Do not use Union::New(); to create a union of a given subtype, use " |
| "New<SubType>(), not New() followed by set_<sub_type>(). To represent " |
| "an empty union, mark the field or parameter as nullable in the mojom " |
| "definition."); |
| return nullptr; |
| } |
| // Construct an instance holding |info|. |
| static GetVirtualSensorInformationResultPtr |
| NewInfo( |
| VirtualSensorInformationPtr value) { |
| auto result = GetVirtualSensorInformationResultPtr(std::in_place); |
| result->set_info(std::move(value)); |
| return result; |
| } |
| // Construct an instance holding |error|. |
| static GetVirtualSensorInformationResultPtr |
| NewError( |
| GetVirtualSensorInformationError value) { |
| auto result = GetVirtualSensorInformationResultPtr(std::in_place); |
| result->set_error(std::move(value)); |
| return result; |
| } |
| |
| template <typename U> |
| static GetVirtualSensorInformationResultPtr From(const U& u) { |
| return mojo::TypeConverter<GetVirtualSensorInformationResultPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, GetVirtualSensorInformationResult>::Convert(*this); |
| } |
| |
| GetVirtualSensorInformationResult(); |
| ~GetVirtualSensorInformationResult(); |
| // Delete the copy constructor and copy assignment operators because `data_` |
| // contains raw pointers that must not be copied. |
| GetVirtualSensorInformationResult(const GetVirtualSensorInformationResult& other) = delete; |
| GetVirtualSensorInformationResult& operator=(const GetVirtualSensorInformationResult& other) = delete; |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename UnionPtrType = GetVirtualSensorInformationResultPtr> |
| GetVirtualSensorInformationResultPtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, |
| typename std::enable_if<std::is_same< |
| T, GetVirtualSensorInformationResult>::value>::type* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, |
| typename std::enable_if<std::is_same< |
| T, GetVirtualSensorInformationResult>::value>::type* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| size_t Hash(size_t seed) const; |
| |
| Tag which() const { |
| return tag_; |
| } |
| |
| |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult.info |
| bool is_info() const { return tag_ == Tag::kInfo; } |
| |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult.info |
| VirtualSensorInformationPtr& get_info() const { |
| CHECK(tag_ == Tag::kInfo); |
| return *(data_.info); |
| } |
| |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult.info |
| void set_info( |
| VirtualSensorInformationPtr info); |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult.error |
| bool is_error() const { return tag_ == Tag::kError; } |
| |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult.error |
| GetVirtualSensorInformationError get_error() const { |
| CHECK(tag_ == Tag::kError); |
| return data_.error; |
| } |
| |
| |
| // @generated_from: device.mojom.GetVirtualSensorInformationResult.error |
| void set_error( |
| GetVirtualSensorInformationError error); |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| GetVirtualSensorInformationResult::DataView>(input); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| return mojo::internal::DeserializeImpl<GetVirtualSensorInformationResult::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| private: |
| union Union_ { |
| Union_() = default; |
| ~Union_() = default; |
| VirtualSensorInformationPtr* info; |
| GetVirtualSensorInformationError error; |
| }; |
| |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| |
| void DestroyActive(); |
| Tag tag_; |
| Union_ data_; |
| }; |
| |
| |
| |
| |
| |
| // @generated_from: device.mojom.SensorInitParams |
| class SensorInitParams { |
| public: |
| template <typename T> |
| using EnableIfSame = std::enable_if_t<std::is_same<SensorInitParams, T>::value>; |
| using DataView = SensorInitParamsDataView; |
| using Data_ = internal::SensorInitParams_Data; |
| |
| // @generated_from: device.mojom.SensorInitParams.kReadBufferSizeForTests |
| static constexpr uint64_t kReadBufferSizeForTests = 48ULL; |
| |
| template <typename... Args> |
| static SensorInitParamsPtr New(Args&&... args) { |
| return SensorInitParamsPtr( |
| std::in_place, std::forward<Args>(args)...); |
| } |
| |
| template <typename U> |
| static SensorInitParamsPtr From(const U& u) { |
| return mojo::TypeConverter<SensorInitParamsPtr, U>::Convert(u); |
| } |
| |
| template <typename U> |
| U To() const { |
| return mojo::TypeConverter<U, SensorInitParams>::Convert(*this); |
| } |
| |
| |
| SensorInitParams(); |
| |
| SensorInitParams( |
| ::mojo::PendingRemote<::device::mojom::Sensor> sensor, |
| ::mojo::PendingReceiver<::device::mojom::SensorClient> client_receiver, |
| ::base::ReadOnlySharedMemoryRegion memory, |
| uint64_t buffer_offset, |
| ::device::mojom::ReportingMode mode, |
| const ::device::PlatformSensorConfiguration& default_configuration, |
| double maximum_frequency, |
| double minimum_frequency); |
| |
| SensorInitParams(const SensorInitParams&) = delete; |
| SensorInitParams& operator=(const SensorInitParams&) = delete; |
| |
| ~SensorInitParams(); |
| |
| // Clone() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Clone() or copy |
| // constructor/assignment are available for members. |
| template <typename StructPtrType = SensorInitParamsPtr> |
| SensorInitParamsPtr Clone() const; |
| |
| // Equals() is a template so it is only instantiated if it is used. Thus, the |
| // bindings generator does not need to know whether Equals() or == operator |
| // are available for members. |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool Equals(const T& other) const; |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool operator==(const T& rhs) const { return Equals(rhs); } |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool operator!=(const T& rhs) const { return !operator==(rhs); } |
| |
| template <typename UserType> |
| static mojo::Message SerializeAsMessage(UserType* input) { |
| return mojo::internal::SerializeAsMessageImpl< |
| SensorInitParams::DataView>(input); |
| } |
| |
| // The returned Message is serialized only if the message is moved |
| // cross-process or cross-language. Otherwise if the message is Deserialized |
| // as the same UserType |input| will just be moved to |output| in |
| // DeserializeFromMessage. |
| template <typename UserType> |
| static mojo::Message WrapAsMessage(UserType input) { |
| return mojo::Message(std::make_unique< |
| internal::SensorInitParams_UnserializedMessageContext< |
| UserType, SensorInitParams::DataView>>(0, 0, std::move(input)), |
| MOJO_CREATE_MESSAGE_FLAG_NONE); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const void* data, |
| size_t data_num_bytes, |
| UserType* output) { |
| mojo::Message message; |
| return mojo::internal::DeserializeImpl<SensorInitParams::DataView>( |
| message, data, data_num_bytes, output, Validate); |
| } |
| |
| template <typename UserType> |
| static bool Deserialize(const std::vector<uint8_t>& input, |
| UserType* output) { |
| return SensorInitParams::Deserialize( |
| input.size() == 0 ? nullptr : &input.front(), input.size(), output); |
| } |
| |
| template <typename UserType> |
| static bool DeserializeFromMessage(mojo::Message input, |
| UserType* output) { |
| auto context = input.TakeUnserializedContext< |
| internal::SensorInitParams_UnserializedMessageContext< |
| UserType, SensorInitParams::DataView>>(); |
| if (context) { |
| *output = std::move(context->TakeData()); |
| return true; |
| } |
| input.SerializeIfNecessary(); |
| return mojo::internal::DeserializeImpl<SensorInitParams::DataView>( |
| input, input.payload(), input.payload_num_bytes(), output, Validate); |
| } |
| |
| |
| // @generated_from: device.mojom.SensorInitParams.sensor |
| ::mojo::PendingRemote<::device::mojom::Sensor> sensor; |
| |
| // @generated_from: device.mojom.SensorInitParams.client_receiver |
| ::mojo::PendingReceiver<::device::mojom::SensorClient> client_receiver; |
| |
| // @generated_from: device.mojom.SensorInitParams.memory |
| ::base::ReadOnlySharedMemoryRegion memory; |
| |
| // @generated_from: device.mojom.SensorInitParams.buffer_offset |
| uint64_t buffer_offset; |
| |
| // @generated_from: device.mojom.SensorInitParams.mode |
| ::device::mojom::ReportingMode mode; |
| |
| // @generated_from: device.mojom.SensorInitParams.default_configuration |
| ::device::PlatformSensorConfiguration default_configuration; |
| |
| // @generated_from: device.mojom.SensorInitParams.maximum_frequency |
| double maximum_frequency; |
| |
| // @generated_from: device.mojom.SensorInitParams.minimum_frequency |
| double minimum_frequency; |
| |
| // Serialise this struct into a trace. |
| void WriteIntoTrace(perfetto::TracedValue traced_context) const; |
| |
| private: |
| static bool Validate(const void* data, |
| mojo::internal::ValidationContext* validation_context); |
| }; |
| |
| // The comparison operators are templates, so they are only instantiated if they |
| // are used. Thus, the bindings generator does not need to know whether |
| // comparison operators are available for members. |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool operator<(const T& lhs, const T& rhs); |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool operator<=(const T& lhs, const T& rhs) { |
| return !(rhs < lhs); |
| } |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool operator>(const T& lhs, const T& rhs) { |
| return rhs < lhs; |
| } |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>* = nullptr> |
| bool operator>=(const T& lhs, const T& rhs) { |
| return !(lhs < rhs); |
| } |
| |
| |
| |
| template <typename UnionPtrType> |
| GetVirtualSensorInformationResultPtr GetVirtualSensorInformationResult::Clone() const { |
| switch (tag_) { |
| case Tag::kInfo: |
| return NewInfo( |
| mojo::Clone(*data_.info)); |
| case Tag::kError: |
| return NewError( |
| mojo::Clone(data_.error)); |
| } |
| return nullptr; |
| } |
| |
| template <typename T, |
| typename std::enable_if<std::is_same< |
| T, GetVirtualSensorInformationResult>::value>::type*> |
| bool GetVirtualSensorInformationResult::Equals(const T& other) const { |
| if (tag_ != other.which()) |
| return false; |
| |
| switch (tag_) { |
| case Tag::kInfo: |
| return mojo::Equals(*(data_.info), *(other.data_.info)); |
| case Tag::kError: |
| return mojo::Equals(data_.error, other.data_.error); |
| } |
| |
| return false; |
| } |
| template <typename StructPtrType> |
| SensorInitParamsPtr SensorInitParams::Clone() const { |
| return New( |
| mojo::Clone(sensor), |
| mojo::Clone(client_receiver), |
| mojo::Clone(memory), |
| mojo::Clone(buffer_offset), |
| mojo::Clone(mode), |
| mojo::Clone(default_configuration), |
| mojo::Clone(maximum_frequency), |
| mojo::Clone(minimum_frequency) |
| ); |
| } |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>*> |
| bool SensorInitParams::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->sensor, other_struct.sensor)) |
| return false; |
| if (!mojo::Equals(this->client_receiver, other_struct.client_receiver)) |
| return false; |
| if (!mojo::Equals(this->memory, other_struct.memory)) |
| return false; |
| if (!mojo::Equals(this->buffer_offset, other_struct.buffer_offset)) |
| return false; |
| if (!mojo::Equals(this->mode, other_struct.mode)) |
| return false; |
| if (!mojo::Equals(this->default_configuration, other_struct.default_configuration)) |
| return false; |
| if (!mojo::Equals(this->maximum_frequency, other_struct.maximum_frequency)) |
| return false; |
| if (!mojo::Equals(this->minimum_frequency, other_struct.minimum_frequency)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, SensorInitParams::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.sensor < rhs.sensor) |
| return true; |
| if (rhs.sensor < lhs.sensor) |
| return false; |
| if (lhs.client_receiver < rhs.client_receiver) |
| return true; |
| if (rhs.client_receiver < lhs.client_receiver) |
| return false; |
| if (lhs.memory < rhs.memory) |
| return true; |
| if (rhs.memory < lhs.memory) |
| return false; |
| if (lhs.buffer_offset < rhs.buffer_offset) |
| return true; |
| if (rhs.buffer_offset < lhs.buffer_offset) |
| return false; |
| if (lhs.mode < rhs.mode) |
| return true; |
| if (rhs.mode < lhs.mode) |
| return false; |
| if (lhs.default_configuration < rhs.default_configuration) |
| return true; |
| if (rhs.default_configuration < lhs.default_configuration) |
| return false; |
| if (lhs.maximum_frequency < rhs.maximum_frequency) |
| return true; |
| if (rhs.maximum_frequency < lhs.maximum_frequency) |
| return false; |
| if (lhs.minimum_frequency < rhs.minimum_frequency) |
| return true; |
| if (rhs.minimum_frequency < lhs.minimum_frequency) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| VirtualSensorMetadataPtr VirtualSensorMetadata::Clone() const { |
| return New( |
| mojo::Clone(available), |
| mojo::Clone(maximum_frequency), |
| mojo::Clone(minimum_frequency), |
| mojo::Clone(reporting_mode) |
| ); |
| } |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>*> |
| bool VirtualSensorMetadata::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->available, other_struct.available)) |
| return false; |
| if (!mojo::Equals(this->maximum_frequency, other_struct.maximum_frequency)) |
| return false; |
| if (!mojo::Equals(this->minimum_frequency, other_struct.minimum_frequency)) |
| return false; |
| if (!mojo::Equals(this->reporting_mode, other_struct.reporting_mode)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, VirtualSensorMetadata::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.available < rhs.available) |
| return true; |
| if (rhs.available < lhs.available) |
| return false; |
| if (lhs.maximum_frequency < rhs.maximum_frequency) |
| return true; |
| if (rhs.maximum_frequency < lhs.maximum_frequency) |
| return false; |
| if (lhs.minimum_frequency < rhs.minimum_frequency) |
| return true; |
| if (rhs.minimum_frequency < lhs.minimum_frequency) |
| return false; |
| if (lhs.reporting_mode < rhs.reporting_mode) |
| return true; |
| if (rhs.reporting_mode < lhs.reporting_mode) |
| return false; |
| return false; |
| } |
| template <typename StructPtrType> |
| VirtualSensorInformationPtr VirtualSensorInformation::Clone() const { |
| return New( |
| mojo::Clone(sampling_frequency) |
| ); |
| } |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>*> |
| bool VirtualSensorInformation::Equals(const T& other_struct) const { |
| if (!mojo::Equals(this->sampling_frequency, other_struct.sampling_frequency)) |
| return false; |
| return true; |
| } |
| |
| template <typename T, VirtualSensorInformation::EnableIfSame<T>*> |
| bool operator<(const T& lhs, const T& rhs) { |
| if (lhs.sampling_frequency < rhs.sampling_frequency) |
| return true; |
| if (rhs.sampling_frequency < lhs.sampling_frequency) |
| return false; |
| return false; |
| } |
| |
| |
| } // device::mojom |
| |
| namespace mojo { |
| |
| |
| template <> |
| struct StructTraits<::device::mojom::SensorInitParams::DataView, |
| ::device::mojom::SensorInitParamsPtr> { |
| static bool IsNull(const ::device::mojom::SensorInitParamsPtr& input) { return !input; } |
| static void SetToNull(::device::mojom::SensorInitParamsPtr* output) { output->reset(); } |
| |
| static decltype(::device::mojom::SensorInitParams::sensor)& sensor( |
| ::device::mojom::SensorInitParamsPtr& input) { |
| return input->sensor; |
| } |
| |
| static decltype(::device::mojom::SensorInitParams::client_receiver)& client_receiver( |
| ::device::mojom::SensorInitParamsPtr& input) { |
| return input->client_receiver; |
| } |
| |
| static decltype(::device::mojom::SensorInitParams::memory)& memory( |
| ::device::mojom::SensorInitParamsPtr& input) { |
| return input->memory; |
| } |
| |
| static decltype(::device::mojom::SensorInitParams::buffer_offset) buffer_offset( |
| const ::device::mojom::SensorInitParamsPtr& input) { |
| return input->buffer_offset; |
| } |
| |
| static decltype(::device::mojom::SensorInitParams::mode) mode( |
| const ::device::mojom::SensorInitParamsPtr& input) { |
| return input->mode; |
| } |
| |
| static const decltype(::device::mojom::SensorInitParams::default_configuration)& default_configuration( |
| const ::device::mojom::SensorInitParamsPtr& input) { |
| return input->default_configuration; |
| } |
| |
| static decltype(::device::mojom::SensorInitParams::maximum_frequency) maximum_frequency( |
| const ::device::mojom::SensorInitParamsPtr& input) { |
| return input->maximum_frequency; |
| } |
| |
| static decltype(::device::mojom::SensorInitParams::minimum_frequency) minimum_frequency( |
| const ::device::mojom::SensorInitParamsPtr& input) { |
| return input->minimum_frequency; |
| } |
| |
| static bool Read(::device::mojom::SensorInitParams::DataView input, ::device::mojom::SensorInitParamsPtr* output); |
| }; |
| |
| |
| template <> |
| struct StructTraits<::device::mojom::VirtualSensorMetadata::DataView, |
| ::device::mojom::VirtualSensorMetadataPtr> { |
| static bool IsNull(const ::device::mojom::VirtualSensorMetadataPtr& input) { return !input; } |
| static void SetToNull(::device::mojom::VirtualSensorMetadataPtr* output) { output->reset(); } |
| |
| static decltype(::device::mojom::VirtualSensorMetadata::available) available( |
| const ::device::mojom::VirtualSensorMetadataPtr& input) { |
| return input->available; |
| } |
| |
| static decltype(::device::mojom::VirtualSensorMetadata::maximum_frequency) maximum_frequency( |
| const ::device::mojom::VirtualSensorMetadataPtr& input) { |
| return input->maximum_frequency; |
| } |
| |
| static decltype(::device::mojom::VirtualSensorMetadata::minimum_frequency) minimum_frequency( |
| const ::device::mojom::VirtualSensorMetadataPtr& input) { |
| return input->minimum_frequency; |
| } |
| |
| static decltype(::device::mojom::VirtualSensorMetadata::reporting_mode) reporting_mode( |
| const ::device::mojom::VirtualSensorMetadataPtr& input) { |
| return input->reporting_mode; |
| } |
| |
| static bool Read(::device::mojom::VirtualSensorMetadata::DataView input, ::device::mojom::VirtualSensorMetadataPtr* output); |
| }; |
| |
| |
| template <> |
| struct StructTraits<::device::mojom::VirtualSensorInformation::DataView, |
| ::device::mojom::VirtualSensorInformationPtr> { |
| static bool IsNull(const ::device::mojom::VirtualSensorInformationPtr& input) { return !input; } |
| static void SetToNull(::device::mojom::VirtualSensorInformationPtr* output) { output->reset(); } |
| |
| static decltype(::device::mojom::VirtualSensorInformation::sampling_frequency) sampling_frequency( |
| const ::device::mojom::VirtualSensorInformationPtr& input) { |
| return input->sampling_frequency; |
| } |
| |
| static bool Read(::device::mojom::VirtualSensorInformation::DataView input, ::device::mojom::VirtualSensorInformationPtr* output); |
| }; |
| |
| |
| template <> |
| struct UnionTraits<::device::mojom::GetVirtualSensorInformationResult::DataView, |
| ::device::mojom::GetVirtualSensorInformationResultPtr> { |
| static bool IsNull(const ::device::mojom::GetVirtualSensorInformationResultPtr& input) { return !input; } |
| static void SetToNull(::device::mojom::GetVirtualSensorInformationResultPtr* output) { output->reset(); } |
| |
| static ::device::mojom::GetVirtualSensorInformationResult::Tag GetTag(const ::device::mojom::GetVirtualSensorInformationResultPtr& input) { |
| return input->which(); |
| } |
| |
| static const ::device::mojom::VirtualSensorInformationPtr& info(const ::device::mojom::GetVirtualSensorInformationResultPtr& input) { |
| return input->get_info(); |
| } |
| |
| static ::device::mojom::GetVirtualSensorInformationError error(const ::device::mojom::GetVirtualSensorInformationResultPtr& input) { |
| return input->get_error(); |
| } |
| |
| static bool Read(::device::mojom::GetVirtualSensorInformationResult::DataView input, ::device::mojom::GetVirtualSensorInformationResultPtr* output); |
| }; |
| |
| } // namespace mojo |
| |
| #endif // SERVICES_DEVICE_PUBLIC_MOJOM_SENSOR_PROVIDER_MOJOM_H_
|
| /* Metadata comment
|
| eyJ0eXBlIjogImt5dGhlMCIsICJtZXRhIjogW3sidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJi
|
| ZWdpbiI6IDE4MTgsICJlbmQiOiAxODMyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
|
| ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
|
| c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yUHJvdmlkZXIifSwg
|
| ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmlu
|
| ZXMiLCAiYmVnaW4iOiAzNjI3LCAiZW5kIjogMzYzNiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
|
| b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
|
| cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNvclByb3Zp
|
| ZGVyLkdldFNlbnNvciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlw
|
| ZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDM4ODMsICJlbmQiOiAzOTAyLCAidm5hbWUi
|
| OiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu
|
| Y29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2Uu
|
| bW9qb20uU2Vuc29yUHJvdmlkZXIuQ3JlYXRlVmlydHVhbFNlbnNvciJ9LCAiZWRnZSI6ICIlL2t5
|
| dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6
|
| IDQxOTQsICJlbmQiOiA0MjEzLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1
|
| cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9t
|
| YWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yUHJvdmlkZXIuVXBkYXRlVmly
|
| dHVhbFNlbnNvciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
|
| ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQ0ODUsICJlbmQiOiA0NTA0LCAidm5hbWUiOiB7
|
| Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
|
| L2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9q
|
| b20uU2Vuc29yUHJvdmlkZXIuUmVtb3ZlVmlydHVhbFNlbnNvciJ9LCAiZWRnZSI6ICIlL2t5dGhl
|
| L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDQ3
|
| ODgsICJlbmQiOiA0ODE1LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6
|
| ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWlu
|
| IiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29yUHJvdmlkZXIuR2V0VmlydHVhbFNl
|
| bnNvckluZm9ybWF0aW9uIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
|
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogNTIwOCwgImVuZCI6IDUyMTcsICJ2bmFt
|
| ZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJj
|
| ZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImRldmlj
|
| ZS5tb2pvbS5TZW5zb3JQcm92aWRlci5HZXRTZW5zb3IifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdl
|
| L2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1MzY1LCAi
|
| ZW5kIjogNTM4NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hy
|
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJz
|
| aWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNvclByb3ZpZGVyLkNyZWF0ZVZpcnR1YWxTZW5z
|
| b3IifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
|
| X2RlZmluZXMiLCAiYmVnaW4iOiA1NTc3LCAiZW5kIjogNTU5NiwgInZuYW1lIjogeyJsYW5ndWFn
|
| ZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2Vh
|
| cmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNv
|
| clByb3ZpZGVyLlVwZGF0ZVZpcnR1YWxTZW5zb3IifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
|
| bmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiA1Nzk0LCAiZW5k
|
| IjogNTgxMywgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21p
|
| dW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWdu
|
| YXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNvclByb3ZpZGVyLlJlbW92ZVZpcnR1YWxTZW5zb3Ii
|
| fSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2Rl
|
| ZmluZXMiLCAiYmVnaW4iOiA1OTc5LCAiZW5kIjogNjAwNiwgInZuYW1lIjogeyJsYW5ndWFnZSI6
|
| ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNo
|
| L2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNvclBy
|
| b3ZpZGVyLkdldFZpcnR1YWxTZW5zb3JJbmZvcm1hdGlvbiJ9LCAiZWRnZSI6ICIlL2t5dGhlL2Vk
|
| Z2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDc3OTEs
|
| ICJlbmQiOiA3ODEyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJj
|
| aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwg
|
| InNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uVmlydHVhbFNlbnNvck1ldGFkYXRhIn0sICJlZGdl
|
| IjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg
|
| ImJlZ2luIjogMTE5MjEsICJlbmQiOiAxMTkzMCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pv
|
| bSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9t
|
| aXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlZpcnR1YWxTZW5zb3JN
|
| ZXRhZGF0YS5hdmFpbGFibGUifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7
|
| InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAxMjAzMiwgImVuZCI6IDEyMDQ5LCAi
|
| dm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
|
| b3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJk
|
| ZXZpY2UubW9qb20uVmlydHVhbFNlbnNvck1ldGFkYXRhLm1heGltdW1fZnJlcXVlbmN5In0sICJl
|
| ZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
|
| IiwgImJlZ2luIjogMTIxNTEsICJlbmQiOiAxMjE2OCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJt
|
| b2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2No
|
| cm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlZpcnR1YWxTZW5z
|
| b3JNZXRhZGF0YS5taW5pbXVtX2ZyZXF1ZW5jeSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2Vu
|
| ZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDEyMjkxLCAiZW5k
|
| IjogMTIzMDUsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9t
|
| aXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2ln
|
| bmF0dXJlIjogImRldmljZS5tb2pvbS5WaXJ0dWFsU2Vuc29yTWV0YWRhdGEucmVwb3J0aW5nX21v
|
| ZGUifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
|
| X2RlZmluZXMiLCAiYmVnaW4iOiAxMzM3MywgImVuZCI6IDEzMzk3LCAidm5hbWUiOiB7Imxhbmd1
|
| YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
|
| ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uVmly
|
| dHVhbFNlbnNvckluZm9ybWF0aW9uIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
|
| fSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMTc0ODcsICJlbmQiOiAxNzUw
|
| NSwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
|
| Z2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUi
|
| OiAiZGV2aWNlLm1vam9tLlZpcnR1YWxTZW5zb3JJbmZvcm1hdGlvbi5zYW1wbGluZ19mcmVxdWVu
|
| Y3kifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9y
|
| X2RlZmluZXMiLCAiYmVnaW4iOiAxODU5NCwgImVuZCI6IDE4NjI3LCAidm5hbWUiOiB7Imxhbmd1
|
| YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVz
|
| ZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uR2V0
|
| VmlydHVhbFNlbnNvckluZm9ybWF0aW9uUmVzdWx0In0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
|
| ZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjE2MzcsICJl
|
| bmQiOiAyMTY0NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hy
|
| b21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJz
|
| aWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLkdldFZpcnR1YWxTZW5zb3JJbmZvcm1hdGlvblJlc3Vs
|
| dC5pbmZvIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFu
|
| Y2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjE3OTEsICJlbmQiOiAyMTc5OSwgInZuYW1lIjogeyJs
|
| YW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j
|
| b2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9t
|
| LkdldFZpcnR1YWxTZW5zb3JJbmZvcm1hdGlvblJlc3VsdC5pbmZvIn0sICJlZGdlIjogIiUva3l0
|
| aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjog
|
| MjE5NTQsICJlbmQiOiAyMTk2MiwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3Jw
|
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8v
|
| bWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLkdldFZpcnR1YWxTZW5zb3JJbmZvcm1h
|
| dGlvblJlc3VsdC5pbmZvIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
|
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjIwODgsICJlbmQiOiAyMjA5NiwgInZu
|
| YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
|
| cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2
|
| aWNlLm1vam9tLkdldFZpcnR1YWxTZW5zb3JJbmZvcm1hdGlvblJlc3VsdC5lcnJvciJ9LCAiZWRn
|
| ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
|
| ICJiZWdpbiI6IDIyMjQ5LCAiZW5kIjogMjIyNTgsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
|
| b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
|
| bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5HZXRWaXJ0dWFsU2Vu
|
| c29ySW5mb3JtYXRpb25SZXN1bHQuZXJyb3IifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVy
|
| YXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMjQxMywgImVuZCI6
|
| IDIyNDIyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1
|
| bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25h
|
| dHVyZSI6ICJkZXZpY2UubW9qb20uR2V0VmlydHVhbFNlbnNvckluZm9ybWF0aW9uUmVzdWx0LmVy
|
| cm9yIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hv
|
| cl9kZWZpbmVzIiwgImJlZ2luIjogMjM0MDIsICJlbmQiOiAyMzQxOCwgInZuYW1lIjogeyJsYW5n
|
| dWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rl
|
| c2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlNl
|
| bnNvckluaXRQYXJhbXMifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5
|
| cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyMzczNiwgImVuZCI6IDIzNzU5LCAidm5h
|
| bWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3Vy
|
| Y2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZp
|
| Y2UubW9qb20uU2Vuc29ySW5pdFBhcmFtcy5rUmVhZEJ1ZmZlclNpemVGb3JUZXN0cyJ9LCAiZWRn
|
| ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIs
|
| ICJiZWdpbiI6IDI3Njk0LCAiZW5kIjogMjc3MDAsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9q
|
| b20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJv
|
| bWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JJbml0UGFy
|
| YW1zLnNlbnNvciJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6
|
| ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDI3ODM2LCAiZW5kIjogMjc4NTEsICJ2bmFtZSI6
|
| IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
|
| b20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImRldmljZS5t
|
| b2pvbS5TZW5zb3JJbml0UGFyYW1zLmNsaWVudF9yZWNlaXZlciJ9LCAiZWRnZSI6ICIlL2t5dGhl
|
| L2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJiZWdpbiI6IDI3
|
| OTUwLCAiZW5kIjogMjc5NTYsICJ2bmFtZSI6IHsibGFuZ3VhZ2UiOiAibW9qb20iLCAiY29ycHVz
|
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJjaC9jaHJvbWl1bS9zcmMvL21h
|
| aW4iLCAic2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JJbml0UGFyYW1zLm1lbW9yeSJ9
|
| LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn0sIHsidHlwZSI6ICJhbmNob3JfZGVm
|
| aW5lcyIsICJiZWdpbiI6IDI4MDM2LCAiZW5kIjogMjgwNDksICJ2bmFtZSI6IHsibGFuZ3VhZ2Ui
|
| OiAibW9qb20iLCAiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY29kZXNlYXJj
|
| aC9jaHJvbWl1bS9zcmMvL21haW4iLCAic2lnbmF0dXJlIjogImRldmljZS5tb2pvbS5TZW5zb3JJ
|
| bml0UGFyYW1zLmJ1ZmZlcl9vZmZzZXQifSwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRl
|
| cyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVnaW4iOiAyODE0MiwgImVuZCI6IDI4
|
| MTQ2LCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwgImNvcnB1cyI6ICJjaHJvbWl1bS5n
|
| b29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0vc3JjLy9tYWluIiwgInNpZ25hdHVy
|
| ZSI6ICJkZXZpY2UubW9qb20uU2Vuc29ySW5pdFBhcmFtcy5tb2RlIn0sICJlZGdlIjogIiUva3l0
|
| aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjog
|
| MjgyNjMsICJlbmQiOiAyODI4NCwgInZuYW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3Jw
|
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8v
|
| bWFpbiIsICJzaWduYXR1cmUiOiAiZGV2aWNlLm1vam9tLlNlbnNvckluaXRQYXJhbXMuZGVmYXVs
|
| dF9jb25maWd1cmF0aW9uIn0sICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMifSwgeyJ0
|
| eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgImJlZ2luIjogMjgzNjYsICJlbmQiOiAyODM4MywgInZu
|
| YW1lIjogeyJsYW5ndWFnZSI6ICJtb2pvbSIsICJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
|
| cmNlLmNvbS9jb2Rlc2VhcmNoL2Nocm9taXVtL3NyYy8vbWFpbiIsICJzaWduYXR1cmUiOiAiZGV2
|
| aWNlLm1vam9tLlNlbnNvckluaXRQYXJhbXMubWF4aW11bV9mcmVxdWVuY3kifSwgImVkZ2UiOiAi
|
| JS9reXRoZS9lZGdlL2dlbmVyYXRlcyJ9LCB7InR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAiYmVn
|
| aW4iOiAyODQ2NSwgImVuZCI6IDI4NDgyLCAidm5hbWUiOiB7Imxhbmd1YWdlIjogIm1vam9tIiwg
|
| ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2NvZGVzZWFyY2gvY2hyb21pdW0v
|
| c3JjLy9tYWluIiwgInNpZ25hdHVyZSI6ICJkZXZpY2UubW9qb20uU2Vuc29ySW5pdFBhcmFtcy5t
|
| aW5pbXVtX2ZyZXF1ZW5jeSJ9LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIn1dfQ==
|
| */ |