blob: 25a8efdbefb8f6675b66f445dddb642a2b6620f3 [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.doccomments/cpp/common_types.h>
#include <fidl/test.doccomments/cpp/markers.h>
namespace test_doccomments {
namespace wire {
using MyStrictBits = ::test_doccomments::MyStrictBits;
using MyFlexibleBits = ::test_doccomments::MyFlexibleBits;
using MyStrictEnum = ::test_doccomments::MyStrictEnum;
using MyFlexibleEnum = ::test_doccomments::MyFlexibleEnum;
struct Struct;
class Table;
class StrictUnion;
class FlexibleUnion;
extern "C" const fidl_type_t test_doccomments_StructTable;
/// struct comment #1
///
/// struct comment #3
struct Struct {
/// struct member comment #1
///
/// struct member comment #3
int32_t field = {};
};
} // namespace wire
} // namespace test_doccomments
template <>
class ::fidl::WireTableBuilder<::test_doccomments::wire::Table>;
template <>
class ::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>;
template <>
struct ::fidl::WireTableFrame<::test_doccomments::wire::Table> final {
public:
WireTableFrame() = default;
// In its intended usage, WireTableFrame will be referenced by an ObjectView.
// If the ObjectView is assigned before a move or copy, then it will reference
// the old invalid object. Because this is unsafe, copies are disallowed and
// moves are only allowed by friend classes that operate safely.
WireTableFrame(const WireTableFrame&) = delete;
WireTableFrame& operator=(const WireTableFrame&) = delete;
private:
WireTableFrame(WireTableFrame&&) noexcept = default;
WireTableFrame& operator=(WireTableFrame&&) noexcept = default;
bool HasUnknownData() const;
::fidl::Envelope<int32_t> field_;
friend class ::test_doccomments::wire::Table;
friend ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableBuilder<::test_doccomments::wire::Table>>;
friend ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>>;
};
namespace test_doccomments {
namespace wire {
extern "C" const fidl_type_t test_doccomments_TableTable;
/// table comment #1
///
/// table comment #3
class Table {
public:
Table() = default;
Table(const Table& other) noexcept = default;
Table& operator=(const Table& other) noexcept = default;
Table(Table&& other) noexcept = default;
Table& operator=(Table&& other) noexcept = default;
~Table() = default;
// Returns whether no field is set.
bool IsEmpty() const { return max_ordinal_ == 0; }
// Returns whether the table references unknown fields.
bool HasUnknownData() const;
// Return a builder that by defaults allocates of an arena.
static ::fidl::WireTableBuilder<::test_doccomments::wire::Table> Builder(
::fidl::AnyArena& arena);
// Return a builder that relies on explicitly allocating |fidl::ObjectView|s.
static ::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>
ExternalBuilder(::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>
frame);
/// table field comment #1
///
/// table field comment #3
const int32_t& field() const {
ZX_ASSERT(has_Field());
return frame_ptr_->field_.get_data();
}
int32_t& field() {
ZX_ASSERT(has_Field());
return frame_ptr_->field_.get_data();
}
bool has_Field() const {
return max_ordinal_ >= 1 && frame_ptr_->field_.has_data();
}
#if defined(FIDL_WIRE_ALLOW_DEPRECATED_MUTABLE_TABLES) || false
public:
#else // !defined(FIDL_WIRE_ALLOW_DEPRECATED_MUTABLE_TABLES)
private:
#endif // FIDL_WIRE_ALLOW_DEPRECATED_MUTABLE_TABLES
Table& set_field(int32_t elem) {
ZX_DEBUG_ASSERT(frame_ptr_ != nullptr);
frame_ptr_->field_.set_data(std::move(elem));
max_ordinal_ = std::max(max_ordinal_, static_cast<uint64_t>(1));
return *this;
}
Table& clear_field() {
ZX_DEBUG_ASSERT(frame_ptr_ != nullptr);
frame_ptr_->field_.clear_data();
return *this;
}
explicit Table(::fidl::AnyArena& allocator)
: frame_ptr_(::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>(
allocator)) {}
// This constructor allows a user controlled allocation (not using a Arena).
// It should only be used when performance is key.
// As soon as the frame is given to the table, it must not be used directly or
// for another table.
explicit Table(
::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>&& frame)
: frame_ptr_(std::move(frame)) {}
void Allocate(::fidl::AnyArena& allocator) {
max_ordinal_ = 0;
frame_ptr_ = ::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>(allocator);
}
void
Init(::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>&& frame_ptr) {
max_ordinal_ = 0;
frame_ptr_ = std::move(frame_ptr);
}
private:
friend ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableBuilder<::test_doccomments::wire::Table>>;
friend ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>>;
uint64_t max_ordinal_ = 0;
::fidl::ObjectView<::fidl::WireTableFrame<::test_doccomments::wire::Table>>
frame_ptr_;
};
} // namespace wire
} // namespace test_doccomments
template <typename BuilderImpl>
class ::fidl::internal::WireTableBaseBuilder<::test_doccomments::wire::Table,
BuilderImpl> {
public:
// Build and return the table. The builder should not be used after this.
::test_doccomments::wire::Table Build() {
ZX_DEBUG_ASSERT(table_.frame_ptr_ != nullptr);
::test_doccomments::wire::Table t = std::move(table_);
// Poison this builder to prevent accidental reuse.
table_.frame_ptr_ = nullptr;
return t;
}
/// table field comment #1
///
/// table field comment #3
BuilderImpl& field(int32_t elem) {
ZX_DEBUG_ASSERT(table_.frame_ptr_ != nullptr);
table_.frame_ptr_->field_.set_data(std::move(elem));
table_.max_ordinal_ =
std::max(table_.max_ordinal_, static_cast<uint64_t>(1));
return *static_cast<BuilderImpl*>(this);
}
protected:
WireTableBaseBuilder(
::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>&& frame)
: table_(std::move(frame)) {}
private:
::test_doccomments::wire::Table table_;
};
template <>
class ::fidl::WireTableBuilder<::test_doccomments::wire::Table> final
: public ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableBuilder<::test_doccomments::wire::Table>> {
using Base = ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableBuilder<::test_doccomments::wire::Table>>;
public:
private:
friend class ::test_doccomments::wire::Table;
WireTableBuilder(::fidl::AnyArena& arena)
: Base(::fidl::ObjectView<
::fidl::WireTableFrame<::test_doccomments::wire::Table>>(arena)),
arena_(arena) {}
[[maybe_unused]] std::reference_wrapper<::fidl::AnyArena> arena_;
};
template <>
class ::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table> final
: public ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>> {
using Base = ::fidl::internal::WireTableBaseBuilder<
::test_doccomments::wire::Table,
::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>>;
private:
friend class ::test_doccomments::wire::Table;
using Base::Base;
WireTableExternalBuilder(
::fidl::WireTableFrame<::test_doccomments::wire::Table>* frame)
: Base(::fidl::ObjectView<::fidl::WireTableFrame<
::test_doccomments::wire::Table>>::FromExternal(frame)) {}
};
namespace test_doccomments {
namespace wire {
inline ::fidl::WireTableBuilder<::test_doccomments::wire::Table> Table::Builder(
::fidl::AnyArena& arena) {
return ::fidl::WireTableBuilder<::test_doccomments::wire::Table>(arena);
}
inline ::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>
Table::ExternalBuilder(
::fidl::ObjectView<::fidl::WireTableFrame<::test_doccomments::wire::Table>>
frame) {
return ::fidl::WireTableExternalBuilder<::test_doccomments::wire::Table>(
std::move(frame));
}
extern "C" const fidl_type_t test_doccomments_StrictUnionTable;
/// strict union comment #1
///
/// strict union comment #3
class StrictUnion {
public:
StrictUnion()
: ordinal_(::test_doccomments::wire::StrictUnion::Ordinal::Invalid),
envelope_{} {}
StrictUnion(const StrictUnion&) = default;
StrictUnion& operator=(const StrictUnion&) = default;
StrictUnion(StrictUnion&&) = default;
StrictUnion& operator=(StrictUnion&&) = default;
enum class Tag : fidl_xunion_tag_t {
kField = 1, // 0x1
};
bool has_invalid_tag() const {
return ordinal_ == ::test_doccomments::wire::StrictUnion::Ordinal::Invalid;
}
bool is_field() const {
return ordinal_ == ::test_doccomments::wire::StrictUnion::Ordinal::kField;
}
/// union member comment #1
///
/// union member comment #3
static StrictUnion WithField(int32_t val) {
StrictUnion result;
result.ordinal_ = ::test_doccomments::wire::StrictUnion::Ordinal::kField;
result.envelope_.As<int32_t>().set_data(std::move(val));
return result;
}
/// union member comment #1
///
/// union member comment #3
int32_t& field() {
ZX_ASSERT(ordinal_ ==
::test_doccomments::wire::StrictUnion::Ordinal::kField);
return envelope_.As<int32_t>().get_data();
}
/// union member comment #1
///
/// union member comment #3
const int32_t& field() const {
ZX_ASSERT(ordinal_ ==
::test_doccomments::wire::StrictUnion::Ordinal::kField);
return envelope_.As<int32_t>().get_data();
}
::test_doccomments::wire::StrictUnion::Tag Which() const {
ZX_ASSERT(!has_invalid_tag());
return static_cast<::test_doccomments::wire::StrictUnion::Tag>(ordinal_);
}
private:
enum class Ordinal : fidl_xunion_tag_t {
Invalid = 0,
kField = 1, // 0x1
};
static void SizeAndOffsetAssertionHelper();
::test_doccomments::wire::StrictUnion::Ordinal ordinal_;
FIDL_ALIGNDECL
::fidl::UntypedEnvelope envelope_;
};
extern "C" const fidl_type_t test_doccomments_FlexibleUnionTable;
/// flexible union comment #1
///
/// flexible union comment #3
class FlexibleUnion {
public:
FlexibleUnion()
: ordinal_(::test_doccomments::wire::FlexibleUnion::Ordinal::Invalid),
envelope_{} {}
FlexibleUnion(const FlexibleUnion&) = default;
FlexibleUnion& operator=(const FlexibleUnion&) = default;
FlexibleUnion(FlexibleUnion&&) = default;
FlexibleUnion& operator=(FlexibleUnion&&) = default;
enum class Tag : fidl_xunion_tag_t {
kField = 1, // 0x1
kUnknown = ::std::numeric_limits<::fidl_union_tag_t>::max(),
};
bool has_invalid_tag() const {
return ordinal_ ==
::test_doccomments::wire::FlexibleUnion::Ordinal::Invalid;
}
bool is_field() const {
return ordinal_ == ::test_doccomments::wire::FlexibleUnion::Ordinal::kField;
}
/// union member comment #1
///
/// union member comment #3
static FlexibleUnion WithField(int32_t val) {
FlexibleUnion result;
result.ordinal_ = ::test_doccomments::wire::FlexibleUnion::Ordinal::kField;
result.envelope_.As<int32_t>().set_data(std::move(val));
return result;
}
/// union member comment #1
///
/// union member comment #3
int32_t& field() {
ZX_ASSERT(ordinal_ ==
::test_doccomments::wire::FlexibleUnion::Ordinal::kField);
return envelope_.As<int32_t>().get_data();
}
/// union member comment #1
///
/// union member comment #3
const int32_t& field() const {
ZX_ASSERT(ordinal_ ==
::test_doccomments::wire::FlexibleUnion::Ordinal::kField);
return envelope_.As<int32_t>().get_data();
}
::test_doccomments::wire::FlexibleUnion::Tag Which() const;
private:
enum class Ordinal : fidl_xunion_tag_t {
Invalid = 0,
kField = 1, // 0x1
};
static void SizeAndOffsetAssertionHelper();
::test_doccomments::wire::FlexibleUnion::Ordinal ordinal_;
FIDL_ALIGNDECL
::fidl::UntypedEnvelope envelope_;
};
/// const comment #1
///
/// const comment #3
constexpr int32_t kC = 4u;
} // namespace wire
} // namespace test_doccomments
namespace fidl {
template <>
struct TypeTraits<::test_doccomments::wire::Struct> {
static constexpr const fidl_type_t* kType =
&::test_doccomments::wire::test_doccomments_StructTable;
static constexpr uint32_t kMaxNumHandles = 0;
static constexpr uint32_t kPrimarySize = 4;
static constexpr uint32_t kPrimarySizeV1 = 4;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr uint32_t kMaxOutOfLineV1 = 0;
static constexpr bool kHasPointer = false;
};
template <>
struct IsFidlType<::test_doccomments::wire::Struct> : public std::true_type {};
template <>
struct IsStruct<::test_doccomments::wire::Struct> : public std::true_type {};
static_assert(std::is_standard_layout_v<::test_doccomments::wire::Struct>);
static_assert(offsetof(::test_doccomments::wire::Struct, field) == 0);
static_assert(sizeof(::test_doccomments::wire::Struct) ==
TypeTraits<::test_doccomments::wire::Struct>::kPrimarySize);
template <>
struct TypeTraits<::test_doccomments::wire::Table> {
static constexpr const fidl_type_t* kType =
&::test_doccomments::wire::test_doccomments_TableTable;
static constexpr uint32_t kMaxNumHandles = 0;
static constexpr uint32_t kPrimarySize = 16;
static constexpr uint32_t kPrimarySizeV1 = 16;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 8;
static constexpr uint32_t kMaxOutOfLineV1 = 24;
static constexpr bool kHasPointer = true;
};
template <>
struct IsFidlType<::test_doccomments::wire::Table> : public std::true_type {};
template <>
struct IsTable<::test_doccomments::wire::Table> : public std::true_type {};
static_assert(std::is_standard_layout_v<::test_doccomments::wire::Table>);
template <>
struct TypeTraits<::test_doccomments::wire::StrictUnion> {
static constexpr const fidl_type_t* kType =
&::test_doccomments::wire::test_doccomments_StrictUnionTable;
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_doccomments::wire::StrictUnion>
: public std::true_type {};
template <>
struct IsUnion<::test_doccomments::wire::StrictUnion> : public std::true_type {
};
static_assert(std::is_standard_layout_v<::test_doccomments::wire::StrictUnion>);
template <>
struct TypeTraits<::test_doccomments::wire::FlexibleUnion> {
static constexpr const fidl_type_t* kType =
&::test_doccomments::wire::test_doccomments_FlexibleUnionTable;
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_doccomments::wire::FlexibleUnion>
: public std::true_type {};
template <>
struct IsUnion<::test_doccomments::wire::FlexibleUnion>
: public std::true_type {};
static_assert(
std::is_standard_layout_v<::test_doccomments::wire::FlexibleUnion>);
} // namespace fidl