blob: 508d8a51eb6e27c1c67944c7ffe92e239db57b09 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <fidl/test.driverhandle/cpp/common_types.h>
#include <fidl/test.driverhandle/cpp/markers.h>
#include <lib/fidl/cpp/natural_coding_traits.h>
#include <lib/fidl/cpp/natural_types.h>
#include <cinttypes>
#include <string>
#ifdef __Fuchsia__
#include <lib/fidl_driver/cpp/natural_types.h>
#include <lib/zx/channel.h>
#include <lib/zx/event.h>
#endif // __Fuchsia__
namespace test_driverhandle {
class HandlesInProtocolSendHandlesRequest;
class ServerEndWrapper;
class ClientEndWrapper;
class T;
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_driverhandle_TTable;
class T {
private:
struct Storage_;
public:
T(Storage_ storage) noexcept : storage_(std::move(storage)) {}
T() noexcept = default;
T(T&&) noexcept = default;
T& operator=(T&&) noexcept = default;
bool IsEmpty() const {
return !(storage_.zircon_handle.has_value() ||
storage_.fdf_handle.has_value());
}
const std::optional<::zx::event>& zircon_handle() const {
return storage_.zircon_handle;
}
::std::optional<::zx::event>& zircon_handle() {
return storage_.zircon_handle;
}
const std::optional<::fdf::ClientEnd<::test_driverhandle::DriverProtocol>>&
fdf_handle() const {
return storage_.fdf_handle;
}
::std::optional<::fdf::ClientEnd<::test_driverhandle::DriverProtocol>>&
fdf_handle() {
return storage_.fdf_handle;
}
T(::fidl::internal::DefaultConstructPossiblyInvalidObjectTag)
: T(Storage_{}) {}
private:
struct Storage_ final {
::std::optional<::zx::event> zircon_handle{};
::std::optional<::fdf::ClientEnd<::test_driverhandle::DriverProtocol>>
fdf_handle{};
};
// TODO(https://fxbug.dev/91252): Box the storage.
Storage_ storage_;
friend struct ::fidl::internal::NaturalTableCodingTraits<
::test_driverhandle::T>;
friend struct ::fidl::internal::MemberVisitor<::test_driverhandle::T>;
static constexpr auto kMembers = std::make_tuple(
::fidl::internal::NaturalTableMember<
Storage_, ::zx::event,
fidl::internal::NaturalCodingConstraintHandle<ZX_OBJ_TYPE_EVENT,
0x80000000, false>>{
1, &Storage_::zircon_handle},
::fidl::internal::NaturalTableMember<
Storage_, ::fdf::ClientEnd<::test_driverhandle::DriverProtocol>,
fidl::internal::NaturalCodingConstraintHandle<
ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>>{
2, &Storage_::fdf_handle});
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
extern "C" const fidl_type_t
test_driverhandle_HandlesInProtocolSendHandlesRequestTable;
class HandlesInProtocolSendHandlesRequest {
private:
struct Storage_;
public:
HandlesInProtocolSendHandlesRequest(Storage_ storage) noexcept
: storage_(std::move(storage)) {}
HandlesInProtocolSendHandlesRequest(::test_driverhandle::T t) noexcept
: storage_({.t = std::move(t)}) {}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
// Default constructs a |HandlesInProtocolSendHandlesRequest| only if all of
// its members are default constructible.
HandlesInProtocolSendHandlesRequest() = default;
#pragma clang diagnostic pop
HandlesInProtocolSendHandlesRequest(
HandlesInProtocolSendHandlesRequest&&) noexcept = default;
HandlesInProtocolSendHandlesRequest& operator=(
HandlesInProtocolSendHandlesRequest&&) noexcept = default;
const ::test_driverhandle::T& t() const { return storage_.t; }
::test_driverhandle::T& t() { return storage_.t; }
HandlesInProtocolSendHandlesRequest(
::fidl::internal::DefaultConstructPossiblyInvalidObjectTag)
: HandlesInProtocolSendHandlesRequest(Storage_{
.t = ::fidl::internal::DefaultConstructPossiblyInvalidObjectTag{},
}) {}
private:
struct Storage_ final {
::test_driverhandle::T t;
};
Storage_ storage_;
friend struct ::fidl::internal::NaturalStructCodingTraits<
::test_driverhandle::HandlesInProtocolSendHandlesRequest, 16>;
friend struct ::fidl::internal::MemberVisitor<
::test_driverhandle::HandlesInProtocolSendHandlesRequest>;
static constexpr auto kMembers = std::make_tuple(
::fidl::internal::NaturalStructMember<
Storage_, ::test_driverhandle::T,
fidl::internal::NaturalCodingConstraintEmpty>{&Storage_::t, 0});
static constexpr auto kPadding = std::make_tuple();
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_driverhandle_ServerEndWrapperTable;
class ServerEndWrapper {
private:
struct Storage_;
public:
ServerEndWrapper(Storage_ storage) noexcept : storage_(std::move(storage)) {}
ServerEndWrapper(
::fdf::ServerEnd<::test_driverhandle::DriverProtocol> value) noexcept
: storage_({.value = std::move(value)}) {}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
// Default constructs a |ServerEndWrapper| only if all of its members are
// default constructible.
ServerEndWrapper() = default;
#pragma clang diagnostic pop
ServerEndWrapper(ServerEndWrapper&&) noexcept = default;
ServerEndWrapper& operator=(ServerEndWrapper&&) noexcept = default;
const ::fdf::ServerEnd<::test_driverhandle::DriverProtocol>& value() const {
return storage_.value;
}
::fdf::ServerEnd<::test_driverhandle::DriverProtocol>& value() {
return storage_.value;
}
ServerEndWrapper(::fidl::internal::DefaultConstructPossiblyInvalidObjectTag)
: ServerEndWrapper(Storage_{
.value = {},
}) {}
private:
struct Storage_ final {
::fdf::ServerEnd<::test_driverhandle::DriverProtocol> value;
};
Storage_ storage_;
friend struct ::fidl::internal::NaturalStructCodingTraits<
::test_driverhandle::ServerEndWrapper, 4>;
friend struct ::fidl::internal::MemberVisitor<
::test_driverhandle::ServerEndWrapper>;
static constexpr auto kMembers = std::make_tuple(
::fidl::internal::NaturalStructMember<
Storage_, ::fdf::ServerEnd<::test_driverhandle::DriverProtocol>,
fidl::internal::NaturalCodingConstraintHandle<
ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>>{
&Storage_::value, 0});
static constexpr auto kPadding = std::make_tuple();
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_driverhandle_ClientEndWrapperTable;
class ClientEndWrapper {
private:
struct Storage_;
public:
ClientEndWrapper(Storage_ storage) noexcept : storage_(std::move(storage)) {}
ClientEndWrapper(
::fdf::ClientEnd<::test_driverhandle::DriverProtocol> value) noexcept
: storage_({.value = std::move(value)}) {}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
// Default constructs a |ClientEndWrapper| only if all of its members are
// default constructible.
ClientEndWrapper() = default;
#pragma clang diagnostic pop
ClientEndWrapper(ClientEndWrapper&&) noexcept = default;
ClientEndWrapper& operator=(ClientEndWrapper&&) noexcept = default;
const ::fdf::ClientEnd<::test_driverhandle::DriverProtocol>& value() const {
return storage_.value;
}
::fdf::ClientEnd<::test_driverhandle::DriverProtocol>& value() {
return storage_.value;
}
ClientEndWrapper(::fidl::internal::DefaultConstructPossiblyInvalidObjectTag)
: ClientEndWrapper(Storage_{
.value = {},
}) {}
private:
struct Storage_ final {
::fdf::ClientEnd<::test_driverhandle::DriverProtocol> value;
};
Storage_ storage_;
friend struct ::fidl::internal::NaturalStructCodingTraits<
::test_driverhandle::ClientEndWrapper, 4>;
friend struct ::fidl::internal::MemberVisitor<
::test_driverhandle::ClientEndWrapper>;
static constexpr auto kMembers = std::make_tuple(
::fidl::internal::NaturalStructMember<
Storage_, ::fdf::ClientEnd<::test_driverhandle::DriverProtocol>,
fidl::internal::NaturalCodingConstraintHandle<
ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>>{
&Storage_::value, 0});
static constexpr auto kPadding = std::make_tuple();
};
#endif // __Fuchsia__
} // namespace test_driverhandle
namespace fidl {
#ifdef __Fuchsia__
extern "C" const fidl_type_t
test_driverhandle_HandlesInProtocolSendHandlesRequestTable;
template <>
struct IsResource<::test_driverhandle::HandlesInProtocolSendHandlesRequest>
: public std::true_type {};
template <>
struct IsFidlType<::test_driverhandle::HandlesInProtocolSendHandlesRequest>
: public std::true_type {};
template <>
struct ::fidl::internal::TypeTraits<
::test_driverhandle::HandlesInProtocolSendHandlesRequest>
final {
public:
static constexpr const fidl_type_t* kCodingTable =
&test_driverhandle_HandlesInProtocolSendHandlesRequestTable;
};
template <>
struct internal::NaturalCodingTraits<
::test_driverhandle::HandlesInProtocolSendHandlesRequest,
::fidl::internal::NaturalCodingConstraintEmpty>
final : public ::fidl::internal::NaturalStructCodingTraits<
::test_driverhandle::HandlesInProtocolSendHandlesRequest, 16> {
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_driverhandle_ServerEndWrapperTable;
template <>
struct IsResource<::test_driverhandle::ServerEndWrapper>
: public std::true_type {};
template <>
struct IsFidlType<::test_driverhandle::ServerEndWrapper>
: public std::true_type {};
template <>
struct ::fidl::internal::TypeTraits<::test_driverhandle::ServerEndWrapper>
final {
public:
static constexpr const fidl_type_t* kCodingTable =
&test_driverhandle_ServerEndWrapperTable;
};
template <>
struct internal::NaturalCodingTraits<
::test_driverhandle::ServerEndWrapper,
::fidl::internal::NaturalCodingConstraintEmpty>
final : public ::fidl::internal::NaturalStructCodingTraits<
::test_driverhandle::ServerEndWrapper, 4> {};
#endif // __Fuchsia__
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_driverhandle_ClientEndWrapperTable;
template <>
struct IsResource<::test_driverhandle::ClientEndWrapper>
: public std::true_type {};
template <>
struct IsFidlType<::test_driverhandle::ClientEndWrapper>
: public std::true_type {};
template <>
struct ::fidl::internal::TypeTraits<::test_driverhandle::ClientEndWrapper>
final {
public:
static constexpr const fidl_type_t* kCodingTable =
&test_driverhandle_ClientEndWrapperTable;
};
template <>
struct internal::NaturalCodingTraits<
::test_driverhandle::ClientEndWrapper,
::fidl::internal::NaturalCodingConstraintEmpty>
final : public ::fidl::internal::NaturalStructCodingTraits<
::test_driverhandle::ClientEndWrapper, 4> {};
#endif // __Fuchsia__
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_driverhandle_TTable;
template <>
struct IsResource<::test_driverhandle::T> : public std::true_type {};
template <>
struct IsFidlType<::test_driverhandle::T> : public std::true_type {};
template <>
struct ::fidl::internal::TypeTraits<::test_driverhandle::T> final {
public:
static constexpr const fidl_type_t* kCodingTable = &test_driverhandle_TTable;
};
template <>
struct internal::NaturalCodingTraits<
::test_driverhandle::T, ::fidl::internal::NaturalCodingConstraintEmpty>
: public ::fidl::internal::NaturalTableCodingTraits<
::test_driverhandle::T> {};
#endif // __Fuchsia__
} // namespace fidl