blob: ef589face6c566504d8e68b70c54a4eb1b45f171 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <lib/fidl/internal.h>
#include <lib/fidl/llcpp/array.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/envelope.h>
#include <lib/fidl/llcpp/errors.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/vector_view.h>
#include <lib/fit/function.h>
#include <lib/stdcompat/optional.h>
#include <algorithm>
#include <cstddef>
#include <variant>
#ifdef __Fuchsia__
#include <lib/fidl/llcpp/client.h>
#include <lib/fidl/llcpp/client_end.h>
#include <lib/fidl/llcpp/connect_service.h>
#include <lib/fidl/llcpp/result.h>
#include <lib/fidl/llcpp/server.h>
#include <lib/fidl/llcpp/server_end.h>
#include <lib/fidl/llcpp/service_handler_interface.h>
#include <lib/fidl/llcpp/sync_call.h>
#include <lib/fidl/llcpp/transaction.h>
#include <lib/fidl/llcpp/wire_messaging.h>
#include <lib/fidl/txn_header.h>
#include <lib/zx/channel.h>
#endif // __Fuchsia__
#include <someotherlibrary/llcpp/fidl.h>
#include <zircon/fidl.h>
namespace fidl_test_typealiases {
namespace wire {
enum class ObjType : uint32_t {
kNone = 0u,
kChannel = 4u,
};
struct ExampleOfUseOfAliases;
#ifdef __Fuchsia__
extern "C" const fidl_type_t fidl_test_typealiases_ExampleOfUseOfAliasesTable;
struct ExampleOfUseOfAliases {
static constexpr const fidl_type_t* Type =
&fidl_test_typealiases_ExampleOfUseOfAliasesTable;
static constexpr uint32_t MaxNumHandles = 3;
static constexpr uint32_t PrimarySize = 88;
[[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 4294967295;
static constexpr bool HasPointer = true;
uint32_t field_of_u32 = {};
::fidl::VectorView<::fidl::StringView> field_of_vec_of_strings = {};
::fidl::VectorView<::fidl::StringView> field_of_vec_of_strings_at_most_nine =
{};
::fidl::VectorView<::fidl::StringView> field_of_vec_of_strings_at_most_5 = {};
::fidl::VectorView<::someotherlibrary::wire::ReferenceMe>
field_of_vec_of_ref_me_at_most_5 = {};
::zx::channel field_of_channel = {};
::zx::channel field_of_client_end = {};
::zx::channel field_of_nullable_client_end = {};
void _CloseHandles();
class UnownedEncodedMessage final {
public:
UnownedEncodedMessage(uint8_t* backing_buffer, uint32_t backing_buffer_size,
ExampleOfUseOfAliases* value)
: message_(::fidl::OutgoingMessage::ConstructorArgs{
.iovecs = iovecs_,
.iovec_capacity = ::fidl::internal::IovecBufferSize,
.handles = handles_,
.handle_capacity =
std::min(ZX_CHANNEL_MAX_MSG_HANDLES, MaxNumHandles),
.backing_buffer = backing_buffer,
.backing_buffer_capacity = backing_buffer_size,
}) {
if (backing_buffer_size < sizeof(ExampleOfUseOfAliases)) {
::fidl::internal::OutgoingMessageResultSetter::SetResult(
message_, ZX_ERR_BUFFER_TOO_SMALL, nullptr);
return;
}
message_.Encode<ExampleOfUseOfAliases>(value);
}
UnownedEncodedMessage(const UnownedEncodedMessage&) = delete;
UnownedEncodedMessage(UnownedEncodedMessage&&) = delete;
UnownedEncodedMessage* operator=(const UnownedEncodedMessage&) = delete;
UnownedEncodedMessage* operator=(UnownedEncodedMessage&&) = delete;
zx_status_t status() const { return message_.status(); }
const char* status_string() const { return message_.status_string(); }
bool ok() const { return message_.status() == ZX_OK; }
const char* error() const { return message_.error(); }
::fidl::OutgoingMessage& GetOutgoingMessage() { return message_; }
private:
::fidl::internal::IovecBuffer iovecs_;
zx_handle_disposition_t
handles_[std::min(ZX_CHANNEL_MAX_MSG_HANDLES, MaxNumHandles)];
::fidl::OutgoingMessage message_;
};
class OwnedEncodedMessage final {
public:
explicit OwnedEncodedMessage(ExampleOfUseOfAliases* value)
: message_(backing_buffer_.data(), backing_buffer_.size(), value) {}
OwnedEncodedMessage(const OwnedEncodedMessage&) = delete;
OwnedEncodedMessage(OwnedEncodedMessage&&) = delete;
OwnedEncodedMessage* operator=(const OwnedEncodedMessage&) = delete;
OwnedEncodedMessage* operator=(OwnedEncodedMessage&&) = delete;
zx_status_t status() const { return message_.status(); }
const char* status_string() const { return message_.status_string(); }
bool ok() const { return message_.ok(); }
const char* error() const { return message_.error(); }
::fidl::OutgoingMessage& GetOutgoingMessage() {
return message_.GetOutgoingMessage();
}
private:
::fidl::internal::BoxedMessageBuffer<ZX_CHANNEL_MAX_MSG_BYTES>
backing_buffer_;
UnownedEncodedMessage message_;
};
class DecodedMessage final : public ::fidl::internal::IncomingMessage {
public:
DecodedMessage(uint8_t* bytes, uint32_t byte_actual,
zx_handle_info_t* handles = nullptr,
uint32_t handle_actual = 0)
: ::fidl::internal::IncomingMessage(bytes, byte_actual, handles,
handle_actual) {
Decode<struct ExampleOfUseOfAliases>();
}
DecodedMessage(fidl_incoming_msg_t* msg)
: ::fidl::internal::IncomingMessage(msg) {
Decode<struct ExampleOfUseOfAliases>();
}
DecodedMessage(const DecodedMessage&) = delete;
DecodedMessage(DecodedMessage&&) = delete;
DecodedMessage* operator=(const DecodedMessage&) = delete;
DecodedMessage* operator=(DecodedMessage&&) = delete;
~DecodedMessage() {
if (ok() && (PrimaryObject() != nullptr)) {
PrimaryObject()->_CloseHandles();
}
}
struct ExampleOfUseOfAliases* PrimaryObject() {
ZX_DEBUG_ASSERT(ok());
return reinterpret_cast<struct ExampleOfUseOfAliases*>(bytes());
}
// Release the ownership of the decoded message. That means that the handles
// won't be closed When the object is destroyed. After calling this method,
// the DecodedMessage object should not be used anymore.
void ReleasePrimaryObject() { ResetBytes(); }
};
};
#endif // __Fuchsia__
} // namespace wire
} // namespace fidl_test_typealiases
namespace fidl {
template <>
struct IsFidlType<::fidl_test_typealiases::wire::ObjType>
: public std::true_type {};
#ifdef __Fuchsia__
template <>
struct IsFidlType<::fidl_test_typealiases::wire::ExampleOfUseOfAliases>
: public std::true_type {};
template <>
struct IsStruct<::fidl_test_typealiases::wire::ExampleOfUseOfAliases>
: public std::true_type {};
static_assert(std::is_standard_layout_v<
::fidl_test_typealiases::wire::ExampleOfUseOfAliases>);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_u32) == 0);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_vec_of_strings) == 8);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_vec_of_strings_at_most_nine) == 24);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_vec_of_strings_at_most_5) == 40);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_vec_of_ref_me_at_most_5) == 56);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_channel) == 72);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_client_end) == 76);
static_assert(offsetof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases,
field_of_nullable_client_end) == 80);
static_assert(
sizeof(::fidl_test_typealiases::wire::ExampleOfUseOfAliases) ==
::fidl_test_typealiases::wire::ExampleOfUseOfAliases::PrimarySize);
#endif // __Fuchsia__
} // namespace fidl