| // WARNING: This file is machine generated by fidlgen. |
| |
| // fidl_experiment = no_optional_structs |
| // fidl_experiment = output_index_json |
| // fidl_experiment = simple_empty_response_syntax |
| // fidl_experiment = unknown_interactions |
| // fidl_experiment = unknown_interactions_mandate |
| |
| #pragma once |
| |
| #include "lib/fidl/cpp/internal/header.h" |
| |
| namespace test { |
| namespace error { |
| |
| // |
| // Domain objects declarations |
| // |
| |
| class ExampleFooRequest; |
| |
| class Example_foo_Response; |
| |
| class Example_foo_Result; |
| |
| class ExampleFooTopResponse; |
| |
| #ifdef __Fuchsia__ |
| |
| class Example; |
| using ExampleHandle = ::fidl::InterfaceHandle<Example>; |
| |
| #endif // __Fuchsia__ |
| |
| class ExampleFooRequest final { |
| public: |
| static const fidl_type_t* FidlType; |
| |
| ::std::string s; |
| |
| static inline ::std::unique_ptr<ExampleFooRequest> New() { return ::std::make_unique<ExampleFooRequest>(); } |
| |
| void Encode(::fidl::Encoder* _encoder, size_t _offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt); |
| static void Decode(::fidl::Decoder* _decoder, ExampleFooRequest* value, size_t _offset); |
| zx_status_t Clone(ExampleFooRequest* result) const; |
| }; |
| |
| inline zx_status_t Clone(const ::test::error::ExampleFooRequest& _value, |
| ::test::error::ExampleFooRequest* _result) { |
| return _value.Clone(_result); |
| } |
| |
| using ExampleFooRequestPtr = ::std::unique_ptr<ExampleFooRequest>; |
| |
| class Example_foo_Response final { |
| public: |
| static const fidl_type_t* FidlType; |
| Example_foo_Response() = default; |
| explicit Example_foo_Response(int64_t v) : y(std::move(v)) {} |
| int64_t ResultValue_() { return std::move(y); } |
| explicit Example_foo_Response(::std::tuple<int64_t> _value_tuple) { |
| std::tie(y) = std::move(_value_tuple); |
| } |
| operator ::std::tuple<int64_t>() && { |
| return std::make_tuple(std::move(y)); |
| } |
| |
| int64_t y{}; |
| |
| static inline ::std::unique_ptr<Example_foo_Response> New() { return ::std::make_unique<Example_foo_Response>(); } |
| |
| void Encode(::fidl::Encoder* _encoder, size_t _offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt); |
| static void Decode(::fidl::Decoder* _decoder, Example_foo_Response* value, size_t _offset); |
| zx_status_t Clone(Example_foo_Response* result) const; |
| }; |
| |
| inline zx_status_t Clone(const ::test::error::Example_foo_Response& _value, |
| ::test::error::Example_foo_Response* _result) { |
| return _value.Clone(_result); |
| } |
| |
| using Example_foo_ResponsePtr = ::std::unique_ptr<Example_foo_Response>; |
| |
| class Example_foo_Result final { |
| public: |
| static const fidl_type_t* FidlType; |
| |
| Example_foo_Result(); |
| ~Example_foo_Result(); |
| |
| Example_foo_Result(Example_foo_Result&&); |
| Example_foo_Result& operator=(Example_foo_Result&&); |
| |
| static Example_foo_Result WithResponse(::test::error::Example_foo_Response&&); |
| static Example_foo_Result WithErr(uint32_t&&); |
| |
| enum __attribute__((enum_extensibility(closed))) Tag : fidl_xunion_tag_t { |
| |
| kResponse = 1, // 0x1 |
| kErr = 2, // 0x2 |
| Invalid = ::std::numeric_limits<::fidl_union_tag_t>::max(), |
| }; |
| |
| static inline ::std::unique_ptr<Example_foo_Result> New() { return ::std::make_unique<Example_foo_Result>(); } |
| |
| void Encode(::fidl::Encoder* encoder, size_t offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt); |
| static void Decode(::fidl::Decoder* _decoder, Example_foo_Result* value, size_t offset); |
| zx_status_t Clone(Example_foo_Result* result) const; |
| |
| bool has_invalid_tag() const { |
| return tag_ == Invalid; |
| } |
| |
| bool is_response() const { return tag_ == ::test::error::Example_foo_Result::Tag::kResponse; } |
| |
| ::test::error::Example_foo_Response& response() { |
| EnsureStorageInitialized(::test::error::Example_foo_Result::Tag::kResponse); |
| return response_; |
| } |
| |
| const ::test::error::Example_foo_Response& response() const { |
| ZX_ASSERT(is_response()); |
| return response_; |
| } |
| Example_foo_Result& set_response(::test::error::Example_foo_Response value); |
| |
| bool is_err() const { return tag_ == ::test::error::Example_foo_Result::Tag::kErr; } |
| |
| uint32_t& err() { |
| EnsureStorageInitialized(::test::error::Example_foo_Result::Tag::kErr); |
| return err_; |
| } |
| |
| const uint32_t& err() const { |
| ZX_ASSERT(is_err()); |
| return err_; |
| } |
| Example_foo_Result& set_err(uint32_t value); |
| |
| ::test::error::Example_foo_Result::Tag Which() const { |
| return ::test::error::Example_foo_Result::Tag(tag_); |
| } |
| |
| // You probably want to use Which() method instead of Ordinal(). Use Ordinal() only when you need |
| // access to the raw integral ordinal value. |
| fidl_xunion_tag_t Ordinal() const { |
| return tag_; |
| } |
| |
| friend ::fidl::Equality<::test::error::Example_foo_Result>; |
| Example_foo_Result(fpromise::result<int64_t, uint32_t>&& result) { |
| ZX_ASSERT(!result.is_pending()); |
| if (result.is_ok()) { |
| set_response(::test::error::Example_foo_Response{result.take_value()}); |
| } else { |
| set_err(result.take_error()); |
| } |
| } |
| Example_foo_Result(fpromise::ok_result<int64_t>&& result) |
| : Example_foo_Result(fpromise::result<int64_t, uint32_t>(std::move(result))) {} |
| Example_foo_Result(fpromise::error_result<uint32_t>&& result) |
| : Example_foo_Result(fpromise::result<int64_t, uint32_t>(std::move(result))) {} |
| operator fpromise::result<int64_t, uint32_t>() && { |
| if (is_err()) { |
| return fpromise::error(err()); |
| } |
| ::std::tuple<int64_t> value_tuple = std::move(response()); |
| return fpromise::ok(std::move(std::get<0>(value_tuple))); |
| } |
| |
| private: |
| void Destroy(); |
| void EnsureStorageInitialized(::fidl_xunion_tag_t tag); |
| |
| ::fidl_xunion_tag_t tag_ = static_cast<fidl_xunion_tag_t>(::test::error::Example_foo_Result::Tag::Invalid); |
| union { |
| ::test::error::Example_foo_Response response_; |
| uint32_t err_; |
| }; |
| }; |
| |
| inline zx_status_t Clone(const ::test::error::Example_foo_Result& value, |
| ::test::error::Example_foo_Result* result) { |
| return value.Clone(result); |
| } |
| |
| using Example_foo_ResultPtr = ::std::unique_ptr<Example_foo_Result>; |
| |
| class ExampleFooTopResponse final { |
| public: |
| static const fidl_type_t* FidlType; |
| |
| ::test::error::Example_foo_Result result; |
| |
| static inline ::std::unique_ptr<ExampleFooTopResponse> New() { return ::std::make_unique<ExampleFooTopResponse>(); } |
| |
| void Encode(::fidl::Encoder* _encoder, size_t _offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt); |
| static void Decode(::fidl::Decoder* _decoder, ExampleFooTopResponse* value, size_t _offset); |
| zx_status_t Clone(ExampleFooTopResponse* result) const; |
| }; |
| |
| inline zx_status_t Clone(const ::test::error::ExampleFooTopResponse& _value, |
| ::test::error::ExampleFooTopResponse* _result) { |
| return _value.Clone(_result); |
| } |
| |
| using ExampleFooTopResponsePtr = ::std::unique_ptr<ExampleFooTopResponse>; |
| |
| #ifdef __Fuchsia__ |
| |
| namespace _internal { |
| __LOCAL extern "C" const fidl_type_t test_error_ExampleFooRequestTable; |
| |
| } // namespace _internal |
| |
| class Example_RequestEncoder { |
| public: |
| static ::fidl::HLCPPOutgoingMessage foo(::fidl::MessageEncoder* _encoder, ::std::string* s) { |
| _encoder->Alloc(16); |
| ::fidl::Encode(_encoder, s, 0 + sizeof(fidl_message_header_t)); |
| |
| return _encoder->GetMessage(); |
| } |
| }; |
| namespace _internal { |
| __LOCAL extern "C" const fidl_type_t test_error_ExampleFooTopResponseTable; |
| |
| } // namespace _internal |
| |
| class Example_ResponseEncoder { |
| public: |
| static ::fidl::HLCPPOutgoingMessage foo(::fidl::MessageEncoder* _encoder, ::test::error::Example_foo_Result* result) { |
| _encoder->Alloc(16); |
| ::fidl::Encode(_encoder, result, 0 + sizeof(fidl_message_header_t)); |
| |
| return _encoder->GetMessage(); |
| } |
| }; |
| |
| #endif // __Fuchsia__ |
| |
| } // namespace error |
| } // namespace test |
| namespace fidl { |
| |
| template <> |
| struct CodingTraits<::test::error::ExampleFooRequest> |
| : public EncodableCodingTraits<::test::error::ExampleFooRequest, 16> {}; |
| |
| template <> |
| struct HasPadding<::test::error::ExampleFooRequest> : public std::true_type {}; |
| |
| template <> |
| struct IsMemcpyCompatible<::test::error::ExampleFooRequest> : public internal::BoolConstant< |
| !HasPadding<::test::error::ExampleFooRequest>::value && IsMemcpyCompatible<::std::string>::value> {}; |
| |
| inline zx_status_t Clone(const ::test::error::ExampleFooRequest& value, |
| ::test::error::ExampleFooRequest* result) { |
| return ::test::error::Clone(value, result); |
| } |
| |
| template <> |
| struct Equality<::test::error::ExampleFooRequest> { |
| bool operator()(const ::test::error::ExampleFooRequest& _lhs, const ::test::error::ExampleFooRequest& _rhs) const { |
| if (!::fidl::Equals(_lhs.s, _rhs.s)) { |
| return false; |
| } |
| return true; |
| } |
| }; |
| template <> |
| struct CodingTraits<::test::error::Example_foo_Response> |
| : public EncodableCodingTraits<::test::error::Example_foo_Response, 8> {}; |
| |
| template <> |
| struct IsMemcpyCompatible<::test::error::Example_foo_Response> : public internal::BoolConstant< |
| !HasPadding<::test::error::Example_foo_Response>::value && IsMemcpyCompatible<int64_t>::value> {}; |
| |
| inline zx_status_t Clone(const ::test::error::Example_foo_Response& value, |
| ::test::error::Example_foo_Response* result) { |
| return ::test::error::Clone(value, result); |
| } |
| |
| template <> |
| struct Equality<::test::error::Example_foo_Response> { |
| bool operator()(const ::test::error::Example_foo_Response& _lhs, const ::test::error::Example_foo_Response& _rhs) const { |
| if (!::fidl::Equals(_lhs.y, _rhs.y)) { |
| return false; |
| } |
| return true; |
| } |
| }; |
| template <> |
| struct IsFidlXUnion<::test::error::Example_foo_Result> : public std::true_type {}; |
| |
| template <> |
| struct CodingTraits<::test::error::Example_foo_Result> |
| : public EncodableCodingTraits<::test::error::Example_foo_Result, 16> {}; |
| |
| template <> |
| struct CodingTraits<std::unique_ptr<::test::error::Example_foo_Result>> { |
| static constexpr size_t inline_size_v2 = 16; |
| |
| static void Encode(Encoder* encoder, std::unique_ptr<::test::error::Example_foo_Result>* value, size_t offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt) { |
| auto&& p_xunion = *value; |
| if (p_xunion) { |
| p_xunion->Encode(encoder, offset); |
| } |
| } |
| |
| static void Decode(Decoder* _decoder, std::unique_ptr<::test::error::Example_foo_Result>* value, size_t offset) { |
| fidl_xunion_t* encoded = _decoder->GetPtr<fidl_xunion_t>(offset); |
| if (encoded->tag == 0) { |
| value->reset(nullptr); |
| return; |
| } |
| |
| value->reset(new ::test::error::Example_foo_Result); |
| |
| ::test::error::Example_foo_Result::Decode(_decoder, value->get(), offset); |
| } |
| }; |
| |
| inline zx_status_t Clone(const ::test::error::Example_foo_Result& value, |
| ::test::error::Example_foo_Result* result) { |
| return ::test::error::Clone(value, result); |
| } |
| |
| template <> |
| struct Equality<::test::error::Example_foo_Result> { |
| bool operator()(const ::test::error::Example_foo_Result& _lhs, const ::test::error::Example_foo_Result& _rhs) const { |
| if (_lhs.Ordinal() != _rhs.Ordinal()) { |
| return false; |
| } |
| |
| switch (_lhs.Ordinal()) { |
| case static_cast<fidl_xunion_tag_t>(::test::error::Example_foo_Result::Tag::Invalid): |
| return true; |
| case ::test::error::Example_foo_Result::Tag::kResponse: |
| return ::fidl::Equals(_lhs.response_, _rhs.response_); |
| case ::test::error::Example_foo_Result::Tag::kErr: |
| return ::fidl::Equals(_lhs.err_, _rhs.err_); |
| |
| default: |
| return false; |
| } |
| } |
| }; |
| template <> |
| struct CodingTraits<::test::error::ExampleFooTopResponse> |
| : public EncodableCodingTraits<::test::error::ExampleFooTopResponse, 16> {}; |
| |
| template <> |
| struct HasPadding<::test::error::ExampleFooTopResponse> : public std::true_type {}; |
| |
| template <> |
| struct IsMemcpyCompatible<::test::error::ExampleFooTopResponse> : public internal::BoolConstant< |
| !HasPadding<::test::error::ExampleFooTopResponse>::value && IsMemcpyCompatible<::test::error::Example_foo_Result>::value> {}; |
| |
| inline zx_status_t Clone(const ::test::error::ExampleFooTopResponse& value, |
| ::test::error::ExampleFooTopResponse* result) { |
| return ::test::error::Clone(value, result); |
| } |
| |
| template <> |
| struct Equality<::test::error::ExampleFooTopResponse> { |
| bool operator()(const ::test::error::ExampleFooTopResponse& _lhs, const ::test::error::ExampleFooTopResponse& _rhs) const { |
| if (!::fidl::Equals(_lhs.result, _rhs.result)) { |
| return false; |
| } |
| return true; |
| } |
| }; |
| |
| // |
| // Proxies and stubs declarations |
| // |
| } // namespace fidl |
| namespace test { |
| namespace error { |
| |
| #ifdef __Fuchsia__ |
| |
| using ExamplePtr = ::fidl::InterfacePtr<Example>; |
| class Example_Proxy; |
| class Example_Stub; |
| class Example_EventSender; |
| class Example_Sync; |
| using ExampleSyncPtr = ::fidl::SynchronousInterfacePtr<Example>; |
| class Example_SyncProxy; |
| |
| namespace internal { |
| |
| constexpr uint64_t kExample_foo_Ordinal = 0xf5f1179dc411e44lu; |
| |
| constexpr ::fidl::MessageDynamicFlags kExample_foo_DynamicFlags = ::fidl::MessageDynamicFlags::kStrictMethod; |
| } // namespace internal |
| |
| #endif // __Fuchsia__ |
| |
| #ifdef __Fuchsia__ |
| |
| class Example { |
| public: |
| using Proxy_ = ::test::error::Example_Proxy; |
| using Stub_ = ::test::error::Example_Stub; |
| using EventSender_ = ::test::error::Example_EventSender; |
| using Sync_ = ::test::error::Example_Sync; |
| virtual ~Example(); |
| using fooCallback = |
| fit::function<void(::test::error::Example_foo_Result)>; |
| |
| virtual void foo(::std::string s, fooCallback callback) = 0; |
| }; |
| |
| class Example_RequestDecoder { |
| public: |
| Example_RequestDecoder() = default; |
| virtual ~Example_RequestDecoder() = default; |
| static const fidl_type_t* GetType(uint64_t ordinal, bool* out_needs_response, bool* is_known); |
| virtual void foo(::std::string s) = 0; |
| }; |
| |
| class Example_ResponseDecoder { |
| public: |
| Example_ResponseDecoder() = default; |
| virtual ~Example_ResponseDecoder() = default; |
| static const fidl_type_t* GetType(uint64_t ordinal); |
| virtual void foo(::test::error::Example_foo_Result result) = 0; |
| }; |
| |
| class Example_EventSender { |
| public: |
| virtual ~Example_EventSender(); |
| }; |
| |
| class Example_Sync { |
| public: |
| using Proxy_ = ::test::error::Example_SyncProxy; |
| virtual ~Example_Sync(); |
| virtual zx_status_t foo(::std::string s, ::test::error::Example_foo_Result* out_result) = 0; |
| }; |
| |
| class Example_Proxy final : public ::fidl::internal::Proxy, public Example { |
| public: |
| explicit Example_Proxy(::fidl::internal::ProxyController* controller); |
| ~Example_Proxy() override; |
| |
| zx_status_t Dispatch_(::fidl::HLCPPIncomingMessage message) override; |
| // cts-coverage-fidl-name:test.error/Example.foo |
| void foo(::std::string s, fooCallback callback) override; |
| |
| private: |
| Example_Proxy(const ::test::error::Example_Proxy&) = delete; |
| Example_Proxy& operator=(const ::test::error::Example_Proxy&) = delete; |
| |
| ::fidl::internal::ProxyController* controller_; |
| }; |
| |
| class Example_Stub final : public ::fidl::internal::Stub, public ::test::error::Example_EventSender { |
| public: |
| typedef class ::test::error::Example Example_clazz; |
| explicit Example_Stub(::test::error::Example_Stub::Example_clazz* impl); |
| ~Example_Stub() override; |
| |
| zx_status_t Dispatch_(::fidl::HLCPPIncomingMessage message, |
| ::fidl::internal::PendingResponse response) override; |
| |
| private: |
| ::test::error::Example_Stub::Example_clazz* impl_; |
| }; |
| |
| class Example_SyncProxy : public ::test::error::Example_Sync { |
| public: |
| explicit Example_SyncProxy(::zx::channel channel); |
| ~Example_SyncProxy() override; |
| // cts-coverage-fidl-name:test.error/Example.foo |
| zx_status_t foo(::std::string s, ::test::error::Example_foo_Result* out_result) override; |
| |
| private: |
| ::fidl::internal::SynchronousProxy proxy_; |
| friend class ::fidl::SynchronousInterfacePtr<Example>; |
| }; |
| |
| #endif // __Fuchsia__ |
| |
| } // namespace error |
| } // namespace test |