blob: 8e45b2f6b238ee551b6adca95be6e7a105fe274e [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <lib/fidl/llcpp/array.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/envelope.h>
#include <lib/fidl/llcpp/message.h>
#include <lib/fidl/llcpp/message_storage.h>
#include <lib/fidl/llcpp/object_view.h>
#include <lib/fidl/llcpp/string_view.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/fidl/llcpp/wire_types.h>
#include <lib/stdcompat/optional.h>
#include <cinttypes>
#ifdef __Fuchsia__
#include <lib/zx/channel.h>
#endif // __Fuchsia__
#include <fidl/test.unknowninteractions/cpp/common_types.h>
#include <fidl/test.unknowninteractions/cpp/markers.h>
namespace test_unknowninteractions {
namespace wire {
struct ExampleFlexibleTwoWayResponse;
struct ExampleFlexibleTwoWayTopResponse;
class ExampleFlexibleTwoWayResult;
extern "C" const fidl_type_t
test_unknowninteractions_Example_FlexibleTwoWay_ResponseTable;
struct ExampleFlexibleTwoWayResponse {
uint8_t __reserved = {};
};
extern "C" const fidl_type_t
test_unknowninteractions_Example_FlexibleTwoWay_ResultTable;
class ExampleFlexibleTwoWayResult {
public:
using Response =
test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse;
ExampleFlexibleTwoWayResult()
: ordinal_(::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult::
Ordinal::Invalid),
envelope_{} {}
ExampleFlexibleTwoWayResult(const ExampleFlexibleTwoWayResult&) = default;
ExampleFlexibleTwoWayResult& operator=(const ExampleFlexibleTwoWayResult&) =
default;
ExampleFlexibleTwoWayResult(ExampleFlexibleTwoWayResult&&) = default;
ExampleFlexibleTwoWayResult& operator=(ExampleFlexibleTwoWayResult&&) =
default;
enum class Tag : fidl_xunion_tag_t {
kResponse = 1, // 0x1
kTransportErr = 3, // 0x3
};
bool has_invalid_tag() const {
return ordinal_ == ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::Invalid;
}
bool is_response() const {
return ordinal_ == ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::kResponse;
}
static ExampleFlexibleTwoWayResult WithResponse(
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse val) {
ExampleFlexibleTwoWayResult result;
result.ordinal_ = ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::kResponse;
result.envelope_
.As<::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse>()
.set_data(std::move(val));
return result;
}
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse& response() {
ZX_ASSERT(ordinal_ == ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::kResponse);
return envelope_
.As<::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse>()
.get_data();
}
const ::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse&
response() const {
ZX_ASSERT(ordinal_ == ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::kResponse);
return envelope_
.As<::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse>()
.get_data();
}
bool is_transport_err() const {
return ordinal_ == ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::kTransportErr;
}
static ExampleFlexibleTwoWayResult WithTransportErr(int32_t val) {
ExampleFlexibleTwoWayResult result;
result.ordinal_ = ::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResult::Ordinal::kTransportErr;
result.envelope_.As<int32_t>().set_data(std::move(val));
return result;
}
int32_t& transport_err() {
ZX_ASSERT(ordinal_ ==
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult::
Ordinal::kTransportErr);
return envelope_.As<int32_t>().get_data();
}
const int32_t& transport_err() const {
ZX_ASSERT(ordinal_ ==
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult::
Ordinal::kTransportErr);
return envelope_.As<int32_t>().get_data();
}
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult::Tag Which()
const {
ZX_ASSERT(!has_invalid_tag());
return static_cast<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult::Tag>(
ordinal_);
}
private:
enum class Ordinal : fidl_xunion_tag_t {
Invalid = 0,
kResponse = 1, // 0x1
kTransportErr = 3, // 0x3
};
static void SizeAndOffsetAssertionHelper();
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult::Ordinal
ordinal_;
FIDL_ALIGNDECL
::fidl::UntypedEnvelope envelope_;
};
extern "C" const fidl_type_t
test_unknowninteractions_ExampleFlexibleTwoWayTopResponseTable;
struct ExampleFlexibleTwoWayTopResponse {
using Result = test_unknowninteractions::wire::ExampleFlexibleTwoWayResult;
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult result = {};
};
} // namespace wire
} // namespace test_unknowninteractions
namespace fidl {
template <>
struct TypeTraits<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse> {
static constexpr const fidl_type_t* kType =
&::test_unknowninteractions::wire::
test_unknowninteractions_Example_FlexibleTwoWay_ResponseTable;
static constexpr uint32_t kMaxNumHandles = 0;
static constexpr uint32_t kPrimarySize = 1;
static constexpr uint32_t kPrimarySizeV1 = 1;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr uint32_t kMaxOutOfLineV1 = 0;
static constexpr bool kHasPointer = false;
};
template <>
struct IsFidlType<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse>
: public std::true_type {};
template <>
struct IsStruct<::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse>
: public std::true_type {};
static_assert(std::is_standard_layout_v<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse>);
static_assert(
offsetof(::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse,
__reserved) == 0);
static_assert(
sizeof(::test_unknowninteractions::wire::ExampleFlexibleTwoWayResponse) ==
TypeTraits<::test_unknowninteractions::wire::
ExampleFlexibleTwoWayResponse>::kPrimarySize);
template <>
struct TypeTraits<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayTopResponse> {
static constexpr const fidl_type_t* kType =
&::test_unknowninteractions::wire::
test_unknowninteractions_ExampleFlexibleTwoWayTopResponseTable;
static constexpr uint32_t kMaxNumHandles = 0;
static constexpr uint32_t kPrimarySize = 16;
static constexpr uint32_t kPrimarySizeV1 = 24;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr uint32_t kMaxOutOfLineV1 = 8;
static constexpr bool kHasPointer = true;
};
template <>
struct IsFidlType<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayTopResponse>
: public std::true_type {};
template <>
struct IsStruct<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayTopResponse>
: public std::true_type {};
static_assert(
std::is_standard_layout_v<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayTopResponse>);
static_assert(
offsetof(::test_unknowninteractions::wire::ExampleFlexibleTwoWayTopResponse,
result) == 0);
static_assert(
sizeof(
::test_unknowninteractions::wire::ExampleFlexibleTwoWayTopResponse) ==
TypeTraits<::test_unknowninteractions::wire::
ExampleFlexibleTwoWayTopResponse>::kPrimarySize);
template <>
struct TypeTraits<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult> {
static constexpr const fidl_type_t* kType =
&::test_unknowninteractions::wire::
test_unknowninteractions_Example_FlexibleTwoWay_ResultTable;
static constexpr uint32_t kMaxNumHandles = 0;
static constexpr uint32_t kPrimarySize = 16;
static constexpr uint32_t kPrimarySizeV1 = 24;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr uint32_t kMaxOutOfLineV1 = 8;
static constexpr bool kHasPointer = true;
};
template <>
struct IsFidlType<::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult>
: public std::true_type {};
template <>
struct IsUnion<::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult>
: public std::true_type {};
static_assert(std::is_standard_layout_v<
::test_unknowninteractions::wire::ExampleFlexibleTwoWayResult>);
} // namespace fidl