| // 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 CHROMEOS_SERVICES_ASSISTANT_PUBLIC_MOJOM_ASSISTANT_MOJOM_SHARED_H_ |
| #define CHROMEOS_SERVICES_ASSISTANT_PUBLIC_MOJOM_ASSISTANT_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 "chromeos/services/assistant/public/mojom/assistant.mojom-shared-internal.h" |
| #include "ui/accessibility/mojom/ax_assistant_structure.mojom-shared.h" |
| #include "ui/gfx/geometry/mojo/geometry.mojom-shared.h" |
| #include "url/mojom/url.mojom-shared.h" |
| #include "mojo/public/mojom/base/string16.mojom-shared.h" |
| #include "mojo/public/mojom/base/time.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" |
| |
| |
| namespace chromeos { |
| namespace assistant { |
| namespace mojom { |
| class AssistantSuggestionDataView; |
| |
| |
| |
| } // namespace mojom |
| } // namespace assistant |
| } // namespace chromeos |
| |
| namespace mojo { |
| namespace internal { |
| |
| template <> |
| struct MojomTypeTraits<::chromeos::assistant::mojom::AssistantSuggestionDataView> { |
| using Data = ::chromeos::assistant::mojom::internal::AssistantSuggestion_Data; |
| using DataAsArrayElement = Pointer<Data>; |
| static constexpr MojomTypeCategory category = MojomTypeCategory::STRUCT; |
| }; |
| |
| } // namespace internal |
| } // namespace mojo |
| |
| |
| namespace chromeos { |
| namespace assistant { |
| namespace mojom { |
| |
| enum class AssistantInteractionResolution : int32_t { |
| kNormal, |
| kInterruption, |
| kError, |
| kMultiDeviceHotwordLoss, |
| kMinValue = 0, |
| kMaxValue = 3, |
| }; |
| |
| inline std::ostream& operator<<(std::ostream& os, AssistantInteractionResolution value) { |
| switch(value) { |
| case AssistantInteractionResolution::kNormal: |
| return os << "AssistantInteractionResolution::kNormal"; |
| case AssistantInteractionResolution::kInterruption: |
| return os << "AssistantInteractionResolution::kInterruption"; |
| case AssistantInteractionResolution::kError: |
| return os << "AssistantInteractionResolution::kError"; |
| case AssistantInteractionResolution::kMultiDeviceHotwordLoss: |
| return os << "AssistantInteractionResolution::kMultiDeviceHotwordLoss"; |
| default: |
| return os << "Unknown AssistantInteractionResolution value: " << static_cast<int32_t>(value); |
| } |
| } |
| inline bool IsKnownEnumValue(AssistantInteractionResolution value) { |
| return internal::AssistantInteractionResolution_Data::IsKnownValue( |
| static_cast<int32_t>(value)); |
| } |
| // Interface base classes. They are used for type safety check. |
| class AssistantInterfaceBase {}; |
| |
| using AssistantPtrDataView = |
| mojo::InterfacePtrDataView<AssistantInterfaceBase>; |
| using AssistantRequestDataView = |
| mojo::InterfaceRequestDataView<AssistantInterfaceBase>; |
| using AssistantAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AssistantInterfaceBase>; |
| using AssistantAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AssistantInterfaceBase>; |
| class AssistantEventSubscriberInterfaceBase {}; |
| |
| using AssistantEventSubscriberPtrDataView = |
| mojo::InterfacePtrDataView<AssistantEventSubscriberInterfaceBase>; |
| using AssistantEventSubscriberRequestDataView = |
| mojo::InterfaceRequestDataView<AssistantEventSubscriberInterfaceBase>; |
| using AssistantEventSubscriberAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AssistantEventSubscriberInterfaceBase>; |
| using AssistantEventSubscriberAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AssistantEventSubscriberInterfaceBase>; |
| class AssistantPlatformInterfaceBase {}; |
| |
| using AssistantPlatformPtrDataView = |
| mojo::InterfacePtrDataView<AssistantPlatformInterfaceBase>; |
| using AssistantPlatformRequestDataView = |
| mojo::InterfaceRequestDataView<AssistantPlatformInterfaceBase>; |
| using AssistantPlatformAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AssistantPlatformInterfaceBase>; |
| using AssistantPlatformAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AssistantPlatformInterfaceBase>; |
| class ClientInterfaceBase {}; |
| |
| using ClientPtrDataView = |
| mojo::InterfacePtrDataView<ClientInterfaceBase>; |
| using ClientRequestDataView = |
| mojo::InterfaceRequestDataView<ClientInterfaceBase>; |
| using ClientAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<ClientInterfaceBase>; |
| using ClientAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<ClientInterfaceBase>; |
| class AudioInputInterfaceBase {}; |
| |
| using AudioInputPtrDataView = |
| mojo::InterfacePtrDataView<AudioInputInterfaceBase>; |
| using AudioInputRequestDataView = |
| mojo::InterfaceRequestDataView<AudioInputInterfaceBase>; |
| using AudioInputAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AudioInputInterfaceBase>; |
| using AudioInputAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AudioInputInterfaceBase>; |
| class AudioInputObserverInterfaceBase {}; |
| |
| using AudioInputObserverPtrDataView = |
| mojo::InterfacePtrDataView<AudioInputObserverInterfaceBase>; |
| using AudioInputObserverRequestDataView = |
| mojo::InterfaceRequestDataView<AudioInputObserverInterfaceBase>; |
| using AudioInputObserverAssociatedPtrInfoDataView = |
| mojo::AssociatedInterfacePtrInfoDataView<AudioInputObserverInterfaceBase>; |
| using AudioInputObserverAssociatedRequestDataView = |
| mojo::AssociatedInterfaceRequestDataView<AudioInputObserverInterfaceBase>; |
| class AssistantSuggestionDataView { |
| public: |
| AssistantSuggestionDataView() {} |
| |
| AssistantSuggestionDataView( |
| internal::AssistantSuggestion_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetTextDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadText(UserType* output) { |
| auto* pointer = data_->text.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| inline void GetIconUrlDataView( |
| ::url::mojom::UrlDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadIconUrl(UserType* output) { |
| auto* pointer = data_->icon_url.Get(); |
| return mojo::internal::Deserialize<::url::mojom::UrlDataView>( |
| pointer, output, context_); |
| } |
| inline void GetActionUrlDataView( |
| ::url::mojom::UrlDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadActionUrl(UserType* output) { |
| auto* pointer = data_->action_url.Get(); |
| return mojo::internal::Deserialize<::url::mojom::UrlDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantSuggestion_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class Assistant_StartVoiceInteraction_ParamsDataView { |
| public: |
| Assistant_StartVoiceInteraction_ParamsDataView() {} |
| |
| Assistant_StartVoiceInteraction_ParamsDataView( |
| internal::Assistant_StartVoiceInteraction_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::Assistant_StartVoiceInteraction_Params_Data* data_ = nullptr; |
| }; |
| |
| class Assistant_StopActiveInteraction_ParamsDataView { |
| public: |
| Assistant_StopActiveInteraction_ParamsDataView() {} |
| |
| Assistant_StopActiveInteraction_ParamsDataView( |
| internal::Assistant_StopActiveInteraction_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::Assistant_StopActiveInteraction_Params_Data* data_ = nullptr; |
| }; |
| |
| class Assistant_SendTextQuery_ParamsDataView { |
| public: |
| Assistant_SendTextQuery_ParamsDataView() {} |
| |
| Assistant_SendTextQuery_ParamsDataView( |
| internal::Assistant_SendTextQuery_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetQueryDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadQuery(UserType* output) { |
| auto* pointer = data_->query.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::Assistant_SendTextQuery_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class Assistant_AddAssistantEventSubscriber_ParamsDataView { |
| public: |
| Assistant_AddAssistantEventSubscriber_ParamsDataView() {} |
| |
| Assistant_AddAssistantEventSubscriber_ParamsDataView( |
| internal::Assistant_AddAssistantEventSubscriber_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| template <typename UserType> |
| UserType TakeSubscriber() { |
| UserType result; |
| bool ret = |
| mojo::internal::Deserialize<::chromeos::assistant::mojom::AssistantEventSubscriberPtrDataView>( |
| &data_->subscriber, &result, context_); |
| DCHECK(ret); |
| return result; |
| } |
| private: |
| internal::Assistant_AddAssistantEventSubscriber_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class Assistant_RequestScreenContext_ParamsDataView { |
| public: |
| Assistant_RequestScreenContext_ParamsDataView() {} |
| |
| Assistant_RequestScreenContext_ParamsDataView( |
| internal::Assistant_RequestScreenContext_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetRegionDataView( |
| ::gfx::mojom::RectDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadRegion(UserType* output) { |
| auto* pointer = data_->region.Get(); |
| return mojo::internal::Deserialize<::gfx::mojom::RectDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::Assistant_RequestScreenContext_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class Assistant_RequestScreenContext_ResponseParamsDataView { |
| public: |
| Assistant_RequestScreenContext_ResponseParamsDataView() {} |
| |
| Assistant_RequestScreenContext_ResponseParamsDataView( |
| internal::Assistant_RequestScreenContext_ResponseParams_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::Assistant_RequestScreenContext_ResponseParams_Data* data_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnInteractionStarted_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnInteractionStarted_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnInteractionStarted_ParamsDataView( |
| internal::AssistantEventSubscriber_OnInteractionStarted_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::AssistantEventSubscriber_OnInteractionStarted_Params_Data* data_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnInteractionFinished_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnInteractionFinished_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnInteractionFinished_ParamsDataView( |
| internal::AssistantEventSubscriber_OnInteractionFinished_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadResolution(UserType* output) const { |
| auto data_value = data_->resolution; |
| return mojo::internal::Deserialize<::chromeos::assistant::mojom::AssistantInteractionResolution>( |
| data_value, output); |
| } |
| |
| AssistantInteractionResolution resolution() const { |
| return static_cast<AssistantInteractionResolution>(data_->resolution); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnInteractionFinished_Params_Data* data_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnHtmlResponse_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnHtmlResponse_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnHtmlResponse_ParamsDataView( |
| internal::AssistantEventSubscriber_OnHtmlResponse_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetResponseDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadResponse(UserType* output) { |
| auto* pointer = data_->response.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnHtmlResponse_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnSuggestionsResponse_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnSuggestionsResponse_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnSuggestionsResponse_ParamsDataView( |
| internal::AssistantEventSubscriber_OnSuggestionsResponse_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetResponseDataView( |
| mojo::ArrayDataView<AssistantSuggestionDataView>* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadResponse(UserType* output) { |
| auto* pointer = data_->response.Get(); |
| return mojo::internal::Deserialize<mojo::ArrayDataView<::chromeos::assistant::mojom::AssistantSuggestionDataView>>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnSuggestionsResponse_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnTextResponse_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnTextResponse_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnTextResponse_ParamsDataView( |
| internal::AssistantEventSubscriber_OnTextResponse_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetResponseDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadResponse(UserType* output) { |
| auto* pointer = data_->response.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnTextResponse_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnOpenUrlResponse_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnOpenUrlResponse_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnOpenUrlResponse_ParamsDataView( |
| internal::AssistantEventSubscriber_OnOpenUrlResponse_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetUrlDataView( |
| ::url::mojom::UrlDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadUrl(UserType* output) { |
| auto* pointer = data_->url.Get(); |
| return mojo::internal::Deserialize<::url::mojom::UrlDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnOpenUrlResponse_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnSpeechRecognitionStarted_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnSpeechRecognitionStarted_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnSpeechRecognitionStarted_ParamsDataView( |
| internal::AssistantEventSubscriber_OnSpeechRecognitionStarted_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::AssistantEventSubscriber_OnSpeechRecognitionStarted_Params_Data* data_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_ParamsDataView( |
| internal::AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetHighConfidenceTextDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadHighConfidenceText(UserType* output) { |
| auto* pointer = data_->high_confidence_text.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| inline void GetLowConfidenceTextDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadLowConfidenceText(UserType* output) { |
| auto* pointer = data_->low_confidence_text.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnSpeechRecognitionEndOfUtterance_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnSpeechRecognitionEndOfUtterance_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnSpeechRecognitionEndOfUtterance_ParamsDataView( |
| internal::AssistantEventSubscriber_OnSpeechRecognitionEndOfUtterance_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::AssistantEventSubscriber_OnSpeechRecognitionEndOfUtterance_Params_Data* data_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnSpeechRecognitionFinalResult_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnSpeechRecognitionFinalResult_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnSpeechRecognitionFinalResult_ParamsDataView( |
| internal::AssistantEventSubscriber_OnSpeechRecognitionFinalResult_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetFinalResultDataView( |
| mojo::StringDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadFinalResult(UserType* output) { |
| auto* pointer = data_->final_result.Get(); |
| return mojo::internal::Deserialize<mojo::StringDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AssistantEventSubscriber_OnSpeechRecognitionFinalResult_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AssistantEventSubscriber_OnSpeechLevelUpdated_ParamsDataView { |
| public: |
| AssistantEventSubscriber_OnSpeechLevelUpdated_ParamsDataView() {} |
| |
| AssistantEventSubscriber_OnSpeechLevelUpdated_ParamsDataView( |
| internal::AssistantEventSubscriber_OnSpeechLevelUpdated_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| float speech_level() const { |
| return data_->speech_level; |
| } |
| private: |
| internal::AssistantEventSubscriber_OnSpeechLevelUpdated_Params_Data* data_ = nullptr; |
| }; |
| |
| class AssistantPlatform_Init_ParamsDataView { |
| public: |
| AssistantPlatform_Init_ParamsDataView() {} |
| |
| AssistantPlatform_Init_ParamsDataView( |
| internal::AssistantPlatform_Init_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| template <typename UserType> |
| UserType TakeAssistantClientInterface() { |
| UserType result; |
| bool ret = |
| mojo::internal::Deserialize<::chromeos::assistant::mojom::ClientPtrDataView>( |
| &data_->assistant_client_interface, &result, context_); |
| DCHECK(ret); |
| return result; |
| } |
| private: |
| internal::AssistantPlatform_Init_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class Client_OnAssistantStatusChanged_ParamsDataView { |
| public: |
| Client_OnAssistantStatusChanged_ParamsDataView() {} |
| |
| Client_OnAssistantStatusChanged_ParamsDataView( |
| internal::Client_OnAssistantStatusChanged_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| bool running() const { |
| return data_->running; |
| } |
| private: |
| internal::Client_OnAssistantStatusChanged_Params_Data* data_ = nullptr; |
| }; |
| |
| class Client_RequestAssistantStructure_ParamsDataView { |
| public: |
| Client_RequestAssistantStructure_ParamsDataView() {} |
| |
| Client_RequestAssistantStructure_ParamsDataView( |
| internal::Client_RequestAssistantStructure_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::Client_RequestAssistantStructure_Params_Data* data_ = nullptr; |
| }; |
| |
| class Client_RequestAssistantStructure_ResponseParamsDataView { |
| public: |
| Client_RequestAssistantStructure_ResponseParamsDataView() {} |
| |
| Client_RequestAssistantStructure_ResponseParamsDataView( |
| internal::Client_RequestAssistantStructure_ResponseParams_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetExtraDataView( |
| ::ax::mojom::AssistantExtraDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadExtra(UserType* output) { |
| auto* pointer = data_->extra.Get(); |
| return mojo::internal::Deserialize<::ax::mojom::AssistantExtraDataView>( |
| pointer, output, context_); |
| } |
| inline void GetStructureDataView( |
| ::ax::mojom::AssistantTreeDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadStructure(UserType* output) { |
| auto* pointer = data_->structure.Get(); |
| return mojo::internal::Deserialize<::ax::mojom::AssistantTreeDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::Client_RequestAssistantStructure_ResponseParams_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AudioInput_AddObserver_ParamsDataView { |
| public: |
| AudioInput_AddObserver_ParamsDataView() {} |
| |
| AudioInput_AddObserver_ParamsDataView( |
| internal::AudioInput_AddObserver_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| template <typename UserType> |
| UserType TakeObserver() { |
| UserType result; |
| bool ret = |
| mojo::internal::Deserialize<::chromeos::assistant::mojom::AudioInputObserverPtrDataView>( |
| &data_->observer, &result, context_); |
| DCHECK(ret); |
| return result; |
| } |
| private: |
| internal::AudioInput_AddObserver_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AudioInputObserver_OnAudioInputFramesAvailable_ParamsDataView { |
| public: |
| AudioInputObserver_OnAudioInputFramesAvailable_ParamsDataView() {} |
| |
| AudioInputObserver_OnAudioInputFramesAvailable_ParamsDataView( |
| internal::AudioInputObserver_OnAudioInputFramesAvailable_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data), context_(context) {} |
| |
| bool is_null() const { return !data_; } |
| inline void GetBufferDataView( |
| mojo::ArrayDataView<int32_t>* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadBuffer(UserType* output) { |
| auto* pointer = data_->buffer.Get(); |
| return mojo::internal::Deserialize<mojo::ArrayDataView<int32_t>>( |
| pointer, output, context_); |
| } |
| uint32_t frame_count() const { |
| return data_->frame_count; |
| } |
| inline void GetTimestampDataView( |
| ::mojo_base::mojom::TimeTicksDataView* output); |
| |
| template <typename UserType> |
| WARN_UNUSED_RESULT bool ReadTimestamp(UserType* output) { |
| auto* pointer = data_->timestamp.Get(); |
| return mojo::internal::Deserialize<::mojo_base::mojom::TimeTicksDataView>( |
| pointer, output, context_); |
| } |
| private: |
| internal::AudioInputObserver_OnAudioInputFramesAvailable_Params_Data* data_ = nullptr; |
| mojo::internal::SerializationContext* context_ = nullptr; |
| }; |
| |
| class AudioInputObserver_OnAudioInputClosed_ParamsDataView { |
| public: |
| AudioInputObserver_OnAudioInputClosed_ParamsDataView() {} |
| |
| AudioInputObserver_OnAudioInputClosed_ParamsDataView( |
| internal::AudioInputObserver_OnAudioInputClosed_Params_Data* data, |
| mojo::internal::SerializationContext* context) |
| : data_(data) {} |
| |
| bool is_null() const { return !data_; } |
| private: |
| internal::AudioInputObserver_OnAudioInputClosed_Params_Data* data_ = nullptr; |
| }; |
| |
| |
| |
| } // namespace mojom |
| } // namespace assistant |
| } // namespace chromeos |
| |
| namespace std { |
| |
| template <> |
| struct hash<::chromeos::assistant::mojom::AssistantInteractionResolution> |
| : public mojo::internal::EnumHashImpl<::chromeos::assistant::mojom::AssistantInteractionResolution> {}; |
| |
| } // namespace std |
| |
| namespace mojo { |
| |
| |
| template <> |
| struct EnumTraits<::chromeos::assistant::mojom::AssistantInteractionResolution, ::chromeos::assistant::mojom::AssistantInteractionResolution> { |
| static ::chromeos::assistant::mojom::AssistantInteractionResolution ToMojom(::chromeos::assistant::mojom::AssistantInteractionResolution input) { return input; } |
| static bool FromMojom(::chromeos::assistant::mojom::AssistantInteractionResolution input, ::chromeos::assistant::mojom::AssistantInteractionResolution* output) { |
| *output = input; |
| return true; |
| } |
| }; |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::chromeos::assistant::mojom::AssistantInteractionResolution, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = EnumTraits<::chromeos::assistant::mojom::AssistantInteractionResolution, 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<::chromeos::assistant::mojom::AssistantInteractionResolution>(input), output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| |
| namespace internal { |
| |
| template <typename MaybeConstUserType> |
| struct Serializer<::chromeos::assistant::mojom::AssistantSuggestionDataView, MaybeConstUserType> { |
| using UserType = typename std::remove_const<MaybeConstUserType>::type; |
| using Traits = StructTraits<::chromeos::assistant::mojom::AssistantSuggestionDataView, UserType>; |
| |
| static void Serialize(MaybeConstUserType& input, |
| Buffer* buffer, |
| ::chromeos::assistant::mojom::internal::AssistantSuggestion_Data::BufferWriter* output, |
| SerializationContext* context) { |
| if (CallIsNullIfExists<Traits>(input)) |
| return; |
| void* custom_context = CustomContextHelper<Traits>::SetUp(input, context); |
| (*output).Allocate(buffer); |
| decltype(CallWithContext(Traits::text, input, custom_context)) in_text = CallWithContext(Traits::text, input, custom_context); |
| typename decltype((*output)->text)::BaseType::BufferWriter |
| text_writer; |
| mojo::internal::Serialize<mojo::StringDataView>( |
| in_text, buffer, &text_writer, context); |
| (*output)->text.Set( |
| text_writer.is_null() ? nullptr : text_writer.data()); |
| MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( |
| (*output)->text.is_null(), |
| mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, |
| "null text in AssistantSuggestion struct"); |
| decltype(CallWithContext(Traits::icon_url, input, custom_context)) in_icon_url = CallWithContext(Traits::icon_url, input, custom_context); |
| typename decltype((*output)->icon_url)::BaseType::BufferWriter |
| icon_url_writer; |
| mojo::internal::Serialize<::url::mojom::UrlDataView>( |
| in_icon_url, buffer, &icon_url_writer, context); |
| (*output)->icon_url.Set( |
| icon_url_writer.is_null() ? nullptr : icon_url_writer.data()); |
| MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( |
| (*output)->icon_url.is_null(), |
| mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, |
| "null icon_url in AssistantSuggestion struct"); |
| decltype(CallWithContext(Traits::action_url, input, custom_context)) in_action_url = CallWithContext(Traits::action_url, input, custom_context); |
| typename decltype((*output)->action_url)::BaseType::BufferWriter |
| action_url_writer; |
| mojo::internal::Serialize<::url::mojom::UrlDataView>( |
| in_action_url, buffer, &action_url_writer, context); |
| (*output)->action_url.Set( |
| action_url_writer.is_null() ? nullptr : action_url_writer.data()); |
| MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING( |
| (*output)->action_url.is_null(), |
| mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER, |
| "null action_url in AssistantSuggestion struct"); |
| CustomContextHelper<Traits>::TearDown(input, custom_context); |
| } |
| |
| static bool Deserialize(::chromeos::assistant::mojom::internal::AssistantSuggestion_Data* input, |
| UserType* output, |
| SerializationContext* context) { |
| if (!input) |
| return CallSetToNullIfExists<Traits>(output); |
| |
| ::chromeos::assistant::mojom::AssistantSuggestionDataView data_view(input, context); |
| return Traits::Read(data_view, output); |
| } |
| }; |
| |
| } // namespace internal |
| |
| } // namespace mojo |
| |
| |
| namespace chromeos { |
| namespace assistant { |
| namespace mojom { |
| |
| inline void AssistantSuggestionDataView::GetTextDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->text.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| inline void AssistantSuggestionDataView::GetIconUrlDataView( |
| ::url::mojom::UrlDataView* output) { |
| auto pointer = data_->icon_url.Get(); |
| *output = ::url::mojom::UrlDataView(pointer, context_); |
| } |
| inline void AssistantSuggestionDataView::GetActionUrlDataView( |
| ::url::mojom::UrlDataView* output) { |
| auto pointer = data_->action_url.Get(); |
| *output = ::url::mojom::UrlDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| |
| |
| inline void Assistant_SendTextQuery_ParamsDataView::GetQueryDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->query.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| inline void Assistant_RequestScreenContext_ParamsDataView::GetRegionDataView( |
| ::gfx::mojom::RectDataView* output) { |
| auto pointer = data_->region.Get(); |
| *output = ::gfx::mojom::RectDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| inline void AssistantEventSubscriber_OnHtmlResponse_ParamsDataView::GetResponseDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->response.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| |
| |
| inline void AssistantEventSubscriber_OnSuggestionsResponse_ParamsDataView::GetResponseDataView( |
| mojo::ArrayDataView<AssistantSuggestionDataView>* output) { |
| auto pointer = data_->response.Get(); |
| *output = mojo::ArrayDataView<AssistantSuggestionDataView>(pointer, context_); |
| } |
| |
| |
| inline void AssistantEventSubscriber_OnTextResponse_ParamsDataView::GetResponseDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->response.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| |
| |
| inline void AssistantEventSubscriber_OnOpenUrlResponse_ParamsDataView::GetUrlDataView( |
| ::url::mojom::UrlDataView* output) { |
| auto pointer = data_->url.Get(); |
| *output = ::url::mojom::UrlDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| inline void AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_ParamsDataView::GetHighConfidenceTextDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->high_confidence_text.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| inline void AssistantEventSubscriber_OnSpeechRecognitionIntermediateResult_ParamsDataView::GetLowConfidenceTextDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->low_confidence_text.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| inline void AssistantEventSubscriber_OnSpeechRecognitionFinalResult_ParamsDataView::GetFinalResultDataView( |
| mojo::StringDataView* output) { |
| auto pointer = data_->final_result.Get(); |
| *output = mojo::StringDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| inline void Client_RequestAssistantStructure_ResponseParamsDataView::GetExtraDataView( |
| ::ax::mojom::AssistantExtraDataView* output) { |
| auto pointer = data_->extra.Get(); |
| *output = ::ax::mojom::AssistantExtraDataView(pointer, context_); |
| } |
| inline void Client_RequestAssistantStructure_ResponseParamsDataView::GetStructureDataView( |
| ::ax::mojom::AssistantTreeDataView* output) { |
| auto pointer = data_->structure.Get(); |
| *output = ::ax::mojom::AssistantTreeDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| inline void AudioInputObserver_OnAudioInputFramesAvailable_ParamsDataView::GetBufferDataView( |
| mojo::ArrayDataView<int32_t>* output) { |
| auto pointer = data_->buffer.Get(); |
| *output = mojo::ArrayDataView<int32_t>(pointer, context_); |
| } |
| inline void AudioInputObserver_OnAudioInputFramesAvailable_ParamsDataView::GetTimestampDataView( |
| ::mojo_base::mojom::TimeTicksDataView* output) { |
| auto pointer = data_->timestamp.Get(); |
| *output = ::mojo_base::mojom::TimeTicksDataView(pointer, context_); |
| } |
| |
| |
| |
| |
| |
| } // namespace mojom |
| } // namespace assistant |
| } // namespace chromeos |
| |
| #endif // CHROMEOS_SERVICES_ASSISTANT_PUBLIC_MOJOM_ASSISTANT_MOJOM_SHARED_H_ |