blob: f50056fa700b4651247b9c8fead819394f0cdda5 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
// fidl_experiment = output_index_json
#pragma once
#include <test/exampleusing/cpp/fidl.h>
#include "lib/fidl/cpp/internal/header.h"
namespace test {
namespace placementofattributes {
//
// Domain objects declarations
//
enum class ExampleBits : uint32_t {
MEMBER = 1u,
};
const static ExampleBits ExampleBitsMask = static_cast<ExampleBits>(1u);
constexpr inline ::test::placementofattributes::ExampleBits operator|(::test::placementofattributes::ExampleBits _lhs, ::test::placementofattributes::ExampleBits _rhs) {
return static_cast<::test::placementofattributes::ExampleBits>(
static_cast<uint32_t>(_lhs) | static_cast<uint32_t>(_rhs));
}
constexpr inline ::test::placementofattributes::ExampleBits& operator|=(::test::placementofattributes::ExampleBits& _lhs,
::test::placementofattributes::ExampleBits _rhs) {
_lhs = _lhs | _rhs;
return _lhs;
}
constexpr inline ::test::placementofattributes::ExampleBits operator&(::test::placementofattributes::ExampleBits _lhs,
::test::placementofattributes::ExampleBits _rhs) {
return static_cast<::test::placementofattributes::ExampleBits>(
static_cast<uint32_t>(_lhs) & static_cast<uint32_t>(_rhs));
}
constexpr inline ::test::placementofattributes::ExampleBits& operator&=(::test::placementofattributes::ExampleBits& _lhs,
::test::placementofattributes::ExampleBits _rhs) {
_lhs = _lhs & _rhs;
return _lhs;
}
constexpr inline ::test::placementofattributes::ExampleBits operator^(::test::placementofattributes::ExampleBits _lhs,
::test::placementofattributes::ExampleBits _rhs) {
return static_cast<::test::placementofattributes::ExampleBits>(
static_cast<uint32_t>(_lhs) ^ static_cast<uint32_t>(_rhs));
}
constexpr inline ::test::placementofattributes::ExampleBits& operator^=(::test::placementofattributes::ExampleBits& _lhs,
::test::placementofattributes::ExampleBits _rhs) {
_lhs = _lhs ^ _rhs;
return _lhs;
}
constexpr inline ::test::placementofattributes::ExampleBits operator~(::test::placementofattributes::ExampleBits _value) {
return static_cast<::test::placementofattributes::ExampleBits>(
~static_cast<uint32_t>(_value) & static_cast<uint32_t>(::test::placementofattributes::ExampleBitsMask));
}
inline zx_status_t Clone(::test::placementofattributes::ExampleBits value,
::test::placementofattributes::ExampleBits* result) {
*result = value;
return ZX_OK;
}
enum class ExampleEnum : uint32_t {
MEMBER = 1u,
};
inline zx_status_t Clone(::test::placementofattributes::ExampleEnum value,
::test::placementofattributes::ExampleEnum* result) {
*result = value;
return ZX_OK;
}
class ExampleProtocolMethodRequest;
#ifdef __Fuchsia__
class ExampleProtocol;
using ExampleProtocolHandle = ::fidl::InterfaceHandle<ExampleProtocol>;
#endif // __Fuchsia__
class ExampleStruct;
class ExampleTable;
class ExampleUnion;
constexpr uint32_t EXAMPLE_CONST = 0u;
class ExampleProtocolMethodRequest final {
public:
static const fidl_type_t* FidlType;
::test::exampleusing::Empty arg;
static inline ::std::unique_ptr<ExampleProtocolMethodRequest> New() { return ::std::make_unique<ExampleProtocolMethodRequest>(); }
void Encode(::fidl::Encoder* _encoder, size_t _offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt);
static void Decode(::fidl::Decoder* _decoder, ExampleProtocolMethodRequest* value, size_t _offset);
zx_status_t Clone(ExampleProtocolMethodRequest* result) const;
};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleProtocolMethodRequest& _value,
::test::placementofattributes::ExampleProtocolMethodRequest* _result) {
return _value.Clone(_result);
}
using ExampleProtocolMethodRequestPtr = ::std::unique_ptr<ExampleProtocolMethodRequest>;
#ifdef __Fuchsia__
namespace _internal {
__LOCAL extern "C" const fidl_type_t test_placementofattributes_ExampleProtocolMethodRequestTable;
} // namespace _internal
class ExampleProtocol_RequestEncoder {
public:
static ::fidl::HLCPPOutgoingMessage Method(::fidl::MessageEncoder* _encoder, ::test::exampleusing::Empty* arg) {
_encoder->Alloc(1);
::fidl::Encode(_encoder, arg, 0 + sizeof(fidl_message_header_t));
return _encoder->GetMessage();
}
};
class ExampleProtocol_ResponseEncoder {
public:
};
#endif // __Fuchsia__
class ExampleStruct final {
public:
static const fidl_type_t* FidlType;
uint32_t member{};
static inline ::std::unique_ptr<ExampleStruct> New() { return ::std::make_unique<ExampleStruct>(); }
void Encode(::fidl::Encoder* _encoder, size_t _offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt);
static void Decode(::fidl::Decoder* _decoder, ExampleStruct* value, size_t _offset);
zx_status_t Clone(ExampleStruct* result) const;
};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleStruct& _value,
::test::placementofattributes::ExampleStruct* _result) {
return _value.Clone(_result);
}
using ExampleStructPtr = ::std::unique_ptr<ExampleStruct>;
class ExampleTable final {
public:
static const fidl_type_t* FidlType;
/// Returns whether no field is set.
bool IsEmpty() const;
const uint32_t& member() const {
ZX_ASSERT(field_presence_.IsSet<0>());
return member_value_.value;
}
bool has_member() const {
return field_presence_.IsSet<0>();
}
uint32_t* mutable_member() {
if (!field_presence_.IsSet<0>()) {
field_presence_.Set<0>();
Construct(&member_value_.value);
}
return &member_value_.value;
}
ExampleTable& set_member(uint32_t _value);
void clear_member() {
if (!field_presence_.IsSet<0>()) {
return;
}
field_presence_.Clear<0>();
Destruct(&member_value_.value);
}
ExampleTable();
ExampleTable(ExampleTable&& other);
~ExampleTable();
ExampleTable& operator=(ExampleTable&& other);
static inline ::std::unique_ptr<ExampleTable> New() { return ::std::make_unique<ExampleTable>(); }
void Encode(::fidl::Encoder* _encoder, size_t _offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt);
static void Decode(::fidl::Decoder* _decoder, ExampleTable* _value, size_t _offset);
zx_status_t Clone(ExampleTable* _result) const;
private:
template <class T, class... Args>
void Construct(T* p, Args&&... args) {
new (p) T(std::forward<Args>(args)...);
}
template <class T>
void Destruct(T* p) {
p->~T();
}
size_t MaxOrdinal() const {
return static_cast<size_t>(field_presence_.MaxSetIndex()) + std::size_t{1};
}
static bool IsOrdinalKnown(uint64_t ordinal) {
switch (ordinal) {
case 1:
return true;
default:
return false;
}
}
::fidl::internal::BitSet<1> field_presence_;
union ValueUnion_member {
ValueUnion_member() {}
~ValueUnion_member() {}
uint32_t value;
};
ValueUnion_member member_value_;
};
using ExampleTablePtr = ::std::unique_ptr<ExampleTable>;
using Alias = uint32_t;
class ExampleUnion final {
public:
static const fidl_type_t* FidlType;
ExampleUnion();
~ExampleUnion();
ExampleUnion(ExampleUnion&&);
ExampleUnion& operator=(ExampleUnion&&);
static ExampleUnion WithVariant(uint32_t&&);
enum __attribute__((enum_extensibility(closed))) Tag : fidl_xunion_tag_t {
kVariant = 1, // 0x1
Invalid = ::std::numeric_limits<::fidl_union_tag_t>::max(),
};
static inline ::std::unique_ptr<ExampleUnion> New() { return ::std::make_unique<ExampleUnion>(); }
void Encode(::fidl::Encoder* encoder, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info = cpp17::nullopt);
static void Decode(::fidl::Decoder* _decoder, ExampleUnion* value, size_t offset);
zx_status_t Clone(ExampleUnion* result) const;
bool has_invalid_tag() const {
return tag_ == Invalid;
}
bool is_variant() const { return tag_ == ::test::placementofattributes::ExampleUnion::Tag::kVariant; }
uint32_t& variant() {
EnsureStorageInitialized(::test::placementofattributes::ExampleUnion::Tag::kVariant);
return variant_;
}
const uint32_t& variant() const {
ZX_ASSERT(is_variant());
return variant_;
}
ExampleUnion& set_variant(uint32_t value);
::test::placementofattributes::ExampleUnion::Tag Which() const {
return ::test::placementofattributes::ExampleUnion::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::placementofattributes::ExampleUnion>;
private:
void Destroy();
void EnsureStorageInitialized(::fidl_xunion_tag_t tag);
::fidl_xunion_tag_t tag_ = static_cast<fidl_xunion_tag_t>(::test::placementofattributes::ExampleUnion::Tag::Invalid);
union {
uint32_t variant_;
};
};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleUnion& value,
::test::placementofattributes::ExampleUnion* result) {
return value.Clone(result);
}
using ExampleUnionPtr = ::std::unique_ptr<ExampleUnion>;
} // namespace placementofattributes
} // namespace test
namespace fidl {
template <>
struct CodingTraits<::test::placementofattributes::ExampleBits> {
static constexpr size_t kInlineSize = sizeof(::test::placementofattributes::ExampleBits);
static void Encode(Encoder* encoder, ::test::placementofattributes::ExampleBits* value, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
ZX_DEBUG_ASSERT(!maybe_handle_info);
uint32_t underlying = static_cast<uint32_t>(*value);
::fidl::Encode(encoder, &underlying, offset);
}
static void Decode(Decoder* decoder, ::test::placementofattributes::ExampleBits* value, size_t offset) {
uint32_t underlying = {};
::fidl::Decode(decoder, &underlying, offset);
*value = static_cast<::test::placementofattributes::ExampleBits>(underlying);
}
};
inline zx_status_t Clone(::test::placementofattributes::ExampleBits value,
::test::placementofattributes::ExampleBits* result) {
return ::test::placementofattributes::Clone(value, result);
}
template <>
struct Equality<::test::placementofattributes::ExampleBits> {
bool operator()(const ::test::placementofattributes::ExampleBits& _lhs, const ::test::placementofattributes::ExampleBits& _rhs) const {
uint32_t _lhs_underlying = static_cast<uint32_t>(_lhs);
uint32_t _rhs_underlying = static_cast<uint32_t>(_rhs);
return ::fidl::Equals(_lhs_underlying, _rhs_underlying);
}
};
template <>
struct CodingTraits<::test::placementofattributes::ExampleEnum> {
static constexpr size_t kInlineSize = sizeof(::test::placementofattributes::ExampleEnum);
static void Encode(Encoder* encoder, ::test::placementofattributes::ExampleEnum* value, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
ZX_DEBUG_ASSERT(!maybe_handle_info);
uint32_t underlying = static_cast<uint32_t>(*value);
::fidl::Encode(encoder, &underlying, offset);
}
static void Decode(Decoder* decoder, ::test::placementofattributes::ExampleEnum* value, size_t offset) {
uint32_t underlying = {};
::fidl::Decode(decoder, &underlying, offset);
*value = static_cast<::test::placementofattributes::ExampleEnum>(underlying);
}
};
inline zx_status_t Clone(::test::placementofattributes::ExampleEnum value,
::test::placementofattributes::ExampleEnum* result) {
return ::test::placementofattributes::Clone(value, result);
}
template <>
struct Equality<::test::placementofattributes::ExampleEnum> {
bool operator()(const ::test::placementofattributes::ExampleEnum& _lhs, const ::test::placementofattributes::ExampleEnum& _rhs) const {
return _lhs == _rhs;
}
};
template <>
struct CodingTraits<::test::placementofattributes::ExampleProtocolMethodRequest>
: public EncodableCodingTraits<::test::placementofattributes::ExampleProtocolMethodRequest, 1> {};
template <>
struct IsMemcpyCompatible<::test::placementofattributes::ExampleProtocolMethodRequest> : public internal::BoolConstant<
!HasPadding<::test::placementofattributes::ExampleProtocolMethodRequest>::value && IsMemcpyCompatible<::test::exampleusing::Empty>::value> {};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleProtocolMethodRequest& value,
::test::placementofattributes::ExampleProtocolMethodRequest* result) {
return ::test::placementofattributes::Clone(value, result);
}
template <>
struct Equality<::test::placementofattributes::ExampleProtocolMethodRequest> {
bool operator()(const ::test::placementofattributes::ExampleProtocolMethodRequest& _lhs, const ::test::placementofattributes::ExampleProtocolMethodRequest& _rhs) const {
if (!::fidl::Equals(_lhs.arg, _rhs.arg)) {
return false;
}
return true;
}
};
template <>
struct CodingTraits<::test::placementofattributes::ExampleStruct>
: public EncodableCodingTraits<::test::placementofattributes::ExampleStruct, 4> {};
template <>
struct IsMemcpyCompatible<::test::placementofattributes::ExampleStruct> : public internal::BoolConstant<
!HasPadding<::test::placementofattributes::ExampleStruct>::value && IsMemcpyCompatible<uint32_t>::value> {};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleStruct& value,
::test::placementofattributes::ExampleStruct* result) {
return ::test::placementofattributes::Clone(value, result);
}
template <>
struct Equality<::test::placementofattributes::ExampleStruct> {
bool operator()(const ::test::placementofattributes::ExampleStruct& _lhs, const ::test::placementofattributes::ExampleStruct& _rhs) const {
if (!::fidl::Equals(_lhs.member, _rhs.member)) {
return false;
}
return true;
}
};
template <>
struct CodingTraits<::test::placementofattributes::ExampleTable>
: public EncodableCodingTraits<::test::placementofattributes::ExampleTable, 16> {};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleTable& _value,
::test::placementofattributes::ExampleTable* result) {
return _value.Clone(result);
}
template <>
struct Equality<::test::placementofattributes::ExampleTable> {
bool operator()(const ::test::placementofattributes::ExampleTable& _lhs, const ::test::placementofattributes::ExampleTable& _rhs) const {
if (_lhs.has_member()) {
if (!_rhs.has_member()) {
return false;
}
if (!::fidl::Equals(_lhs.member(), _rhs.member())) {
return false;
}
} else if (_rhs.has_member()) {
return false;
}
return true;
}
};
template <>
struct IsFidlXUnion<::test::placementofattributes::ExampleUnion> : public std::true_type {};
template <>
struct CodingTraits<::test::placementofattributes::ExampleUnion>
: public EncodableCodingTraits<::test::placementofattributes::ExampleUnion, 16> {};
template <>
struct CodingTraits<std::unique_ptr<::test::placementofattributes::ExampleUnion>> {
static constexpr size_t kInlineSize = 16;
static void Encode(Encoder* encoder, std::unique_ptr<::test::placementofattributes::ExampleUnion>* 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::placementofattributes::ExampleUnion>* value, size_t offset) {
fidl_union_t* encoded = _decoder->GetPtr<fidl_union_t>(offset);
if (encoded->tag == 0) {
value->reset(nullptr);
return;
}
value->reset(new ::test::placementofattributes::ExampleUnion);
::test::placementofattributes::ExampleUnion::Decode(_decoder, value->get(), offset);
}
};
inline zx_status_t Clone(const ::test::placementofattributes::ExampleUnion& value,
::test::placementofattributes::ExampleUnion* result) {
return ::test::placementofattributes::Clone(value, result);
}
template <>
struct Equality<::test::placementofattributes::ExampleUnion> {
bool operator()(const ::test::placementofattributes::ExampleUnion& _lhs, const ::test::placementofattributes::ExampleUnion& _rhs) const {
if (_lhs.Ordinal() != _rhs.Ordinal()) {
return false;
}
switch (_lhs.Ordinal()) {
case static_cast<fidl_xunion_tag_t>(::test::placementofattributes::ExampleUnion::Tag::Invalid):
return true;
case ::test::placementofattributes::ExampleUnion::Tag::kVariant:
return ::fidl::Equals(_lhs.variant_, _rhs.variant_);
default:
return false;
}
}
};
//
// Proxies and stubs declarations
//
} // namespace fidl
namespace test {
namespace placementofattributes {
#ifdef __Fuchsia__
using ExampleProtocolPtr = ::fidl::InterfacePtr<ExampleProtocol>;
class ExampleProtocol_Proxy;
class ExampleProtocol_Stub;
class ExampleProtocol_EventSender;
class ExampleProtocol_Sync;
using ExampleProtocolSyncPtr = ::fidl::SynchronousInterfacePtr<ExampleProtocol>;
class ExampleProtocol_SyncProxy;
namespace internal {
constexpr uint64_t kExampleProtocol_Method_Ordinal = 0x53978e6fc7476749lu;
constexpr ::fidl::MessageDynamicFlags kExampleProtocol_Method_DynamicFlags = ::fidl::MessageDynamicFlags::kStrictMethod;
} // namespace internal
#endif // __Fuchsia__
#ifdef __Fuchsia__
class ExampleProtocol {
public:
using Proxy_ = ::test::placementofattributes::ExampleProtocol_Proxy;
using Stub_ = ::test::placementofattributes::ExampleProtocol_Stub;
using EventSender_ = ::test::placementofattributes::ExampleProtocol_EventSender;
using Sync_ = ::test::placementofattributes::ExampleProtocol_Sync;
virtual ~ExampleProtocol();
virtual void Method(::test::exampleusing::Empty arg) = 0;
};
class ExampleProtocol_RequestDecoder {
public:
ExampleProtocol_RequestDecoder() = default;
virtual ~ExampleProtocol_RequestDecoder() = default;
static const fidl_type_t* GetType(uint64_t ordinal, bool* out_needs_response, bool* is_known);
virtual void Method(::test::exampleusing::Empty arg) = 0;
};
class ExampleProtocol_ResponseDecoder {
public:
ExampleProtocol_ResponseDecoder() = default;
virtual ~ExampleProtocol_ResponseDecoder() = default;
static const fidl_type_t* GetType(uint64_t ordinal);
};
class ExampleProtocol_EventSender {
public:
virtual ~ExampleProtocol_EventSender();
};
class ExampleProtocol_Sync {
public:
using Proxy_ = ::test::placementofattributes::ExampleProtocol_SyncProxy;
virtual ~ExampleProtocol_Sync();
virtual zx_status_t Method(::test::exampleusing::Empty arg) = 0;
};
class ExampleProtocol_Proxy final : public ::fidl::internal::Proxy, public ExampleProtocol {
public:
explicit ExampleProtocol_Proxy(::fidl::internal::ProxyController* controller);
~ExampleProtocol_Proxy() override;
zx_status_t Dispatch_(::fidl::HLCPPIncomingMessage message) override;
// cts-coverage-fidl-name:test.placementofattributes/ExampleProtocol.Method
void Method(::test::exampleusing::Empty arg) override;
private:
ExampleProtocol_Proxy(const ::test::placementofattributes::ExampleProtocol_Proxy&) = delete;
ExampleProtocol_Proxy& operator=(const ::test::placementofattributes::ExampleProtocol_Proxy&) = delete;
::fidl::internal::ProxyController* controller_;
};
class ExampleProtocol_Stub final : public ::fidl::internal::Stub, public ::test::placementofattributes::ExampleProtocol_EventSender {
public:
typedef class ::test::placementofattributes::ExampleProtocol ExampleProtocol_clazz;
explicit ExampleProtocol_Stub(::test::placementofattributes::ExampleProtocol_Stub::ExampleProtocol_clazz* impl);
~ExampleProtocol_Stub() override;
zx_status_t Dispatch_(::fidl::HLCPPIncomingMessage message,
::fidl::internal::PendingResponse response) override;
private:
::test::placementofattributes::ExampleProtocol_Stub::ExampleProtocol_clazz* impl_;
};
class ExampleProtocol_SyncProxy : public ::test::placementofattributes::ExampleProtocol_Sync {
public:
explicit ExampleProtocol_SyncProxy(::zx::channel channel);
~ExampleProtocol_SyncProxy() override;
// cts-coverage-fidl-name:test.placementofattributes/ExampleProtocol.Method
zx_status_t Method(::test::exampleusing::Empty arg) override;
private:
::fidl::internal::SynchronousProxy proxy_;
friend class ::fidl::SynchronousInterfacePtr<ExampleProtocol>;
};
#endif // __Fuchsia__
} // namespace placementofattributes
} // namespace test