blob: b0f1398315d0e9f815110b420c4f6cc81b84d2d9 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#include <request_flexible_envelope.test.json.llcpp.h>
#include <memory>
namespace llcpp {
namespace fidl {
namespace test {
namespace json {
void ::llcpp::fidl::test::json::StrictFoo::SizeAndOffsetAssertionHelper() {
static_assert(sizeof(StrictFoo) == sizeof(fidl_xunion_t));
static_assert(offsetof(StrictFoo, ordinal_) == offsetof(fidl_xunion_t, tag));
static_assert(offsetof(StrictFoo, envelope_) ==
offsetof(fidl_xunion_t, envelope));
}
void StrictFoo::_CloseHandles() {}
auto ::llcpp::fidl::test::json::FlexibleFoo::which() const -> Tag {
ZX_ASSERT(!has_invalid_tag());
switch (ordinal_) {
case Ordinal::kS:
case Ordinal::kI:
return static_cast<Tag>(ordinal_);
default:
return Tag::kUnknown;
}
}
void ::llcpp::fidl::test::json::FlexibleFoo::SizeAndOffsetAssertionHelper() {
static_assert(sizeof(FlexibleFoo) == sizeof(fidl_xunion_t));
static_assert(offsetof(FlexibleFoo, ordinal_) ==
offsetof(fidl_xunion_t, tag));
static_assert(offsetof(FlexibleFoo, envelope_) ==
offsetof(fidl_xunion_t, envelope));
}
void FlexibleFoo::_CloseHandles() {}
namespace {
[[maybe_unused]] constexpr uint64_t
kProtocol_RequestStrictResponseFlexible_Ordinal = 8264567585134801538lu;
extern "C" const fidl_type_t
fidl_test_json_ProtocolRequestStrictResponseFlexibleRequestTable;
extern "C" const fidl_type_t
fidl_test_json_ProtocolRequestStrictResponseFlexibleResponseTable;
[[maybe_unused]] constexpr uint64_t
kProtocol_RequestFlexibleResponseStrict_Ordinal = 4801763909694511442lu;
extern "C" const fidl_type_t
fidl_test_json_ProtocolRequestFlexibleResponseStrictRequestTable;
extern "C" const fidl_type_t
fidl_test_json_ProtocolRequestFlexibleResponseStrictResponseTable;
} // namespace
Protocol::ResultOf::RequestStrictResponseFlexible::
RequestStrictResponseFlexible(zx_handle_t _client,
::llcpp::fidl::test::json::StrictFoo& s)
: bytes_(std::make_unique<
::fidl::internal::AlignedBuffer<ZX_CHANNEL_MAX_MSG_BYTES>>()) {
RequestStrictResponseFlexibleRequest::OwnedOutgoingMessage _request(0, s);
_request.GetOutgoingMessage().Call<RequestStrictResponseFlexibleResponse>(
_client, bytes_->data(), ZX_CHANNEL_MAX_MSG_BYTES);
status_ = _request.status();
error_ = _request.error();
}
Protocol::ResultOf::RequestStrictResponseFlexible::
RequestStrictResponseFlexible(zx_handle_t _client,
::llcpp::fidl::test::json::StrictFoo& s,
zx_time_t _deadline)
: bytes_(std::make_unique<
::fidl::internal::AlignedBuffer<ZX_CHANNEL_MAX_MSG_BYTES>>()) {
RequestStrictResponseFlexibleRequest::OwnedOutgoingMessage _request(0, s);
_request.GetOutgoingMessage().Call<RequestStrictResponseFlexibleResponse>(
_client, bytes_->data(), ZX_CHANNEL_MAX_MSG_BYTES, _deadline);
status_ = _request.status();
error_ = _request.error();
}
Protocol::UnownedResultOf::RequestStrictResponseFlexible::
RequestStrictResponseFlexible(zx_handle_t _client, uint8_t* _request_bytes,
uint32_t _request_byte_capacity,
::llcpp::fidl::test::json::StrictFoo& s,
uint8_t* _response_bytes,
uint32_t _response_byte_capacity)
: bytes_(_response_bytes) {
RequestStrictResponseFlexibleRequest::UnownedOutgoingMessage _request(
_request_bytes, _request_byte_capacity, 0, s);
_request.GetOutgoingMessage().Call<RequestStrictResponseFlexibleResponse>(
_client, _response_bytes, _response_byte_capacity);
status_ = _request.status();
error_ = _request.error();
}
Protocol::ResultOf::RequestFlexibleResponseStrict::
RequestFlexibleResponseStrict(zx_handle_t _client,
::llcpp::fidl::test::json::FlexibleFoo& s)
: bytes_(std::make_unique<
::fidl::internal::AlignedBuffer<ZX_CHANNEL_MAX_MSG_BYTES>>()) {
RequestFlexibleResponseStrictRequest::OwnedOutgoingMessage _request(0, s);
_request.GetOutgoingMessage().Call<RequestFlexibleResponseStrictResponse>(
_client, bytes_->data(), ZX_CHANNEL_MAX_MSG_BYTES);
status_ = _request.status();
error_ = _request.error();
}
Protocol::ResultOf::RequestFlexibleResponseStrict::
RequestFlexibleResponseStrict(zx_handle_t _client,
::llcpp::fidl::test::json::FlexibleFoo& s,
zx_time_t _deadline)
: bytes_(std::make_unique<
::fidl::internal::AlignedBuffer<ZX_CHANNEL_MAX_MSG_BYTES>>()) {
RequestFlexibleResponseStrictRequest::OwnedOutgoingMessage _request(0, s);
_request.GetOutgoingMessage().Call<RequestFlexibleResponseStrictResponse>(
_client, bytes_->data(), ZX_CHANNEL_MAX_MSG_BYTES, _deadline);
status_ = _request.status();
error_ = _request.error();
}
Protocol::UnownedResultOf::RequestFlexibleResponseStrict::
RequestFlexibleResponseStrict(zx_handle_t _client, uint8_t* _request_bytes,
uint32_t _request_byte_capacity,
::llcpp::fidl::test::json::FlexibleFoo& s,
uint8_t* _response_bytes,
uint32_t _response_byte_capacity)
: bytes_(_response_bytes) {
RequestFlexibleResponseStrictRequest::UnownedOutgoingMessage _request(
_request_bytes, _request_byte_capacity, 0, s);
_request.GetOutgoingMessage().Call<RequestFlexibleResponseStrictResponse>(
_client, _response_bytes, _response_byte_capacity);
status_ = _request.status();
error_ = _request.error();
}
Protocol::ResultOf::RequestStrictResponseFlexible
Protocol::ClientImpl::RequestStrictResponseFlexible_Sync(
::llcpp::fidl::test::json::StrictFoo s) {
if (auto _channel = ::fidl::internal::ClientBase::GetChannel()) {
return ResultOf::RequestStrictResponseFlexible(_channel->handle(), s);
}
return Protocol::ResultOf::RequestStrictResponseFlexible(
::fidl::Result(ZX_ERR_CANCELED, ::fidl::kErrorChannelUnbound));
}
Protocol::UnownedResultOf::RequestStrictResponseFlexible
Protocol::ClientImpl::RequestStrictResponseFlexible_Sync(
::fidl::BytePart _request_buffer, ::llcpp::fidl::test::json::StrictFoo s,
::fidl::BytePart _response_buffer) {
if (auto _channel = ::fidl::internal::ClientBase::GetChannel()) {
return UnownedResultOf::RequestStrictResponseFlexible(
_channel->handle(), _request_buffer.data(), _request_buffer.capacity(),
s, _response_buffer.data(), _response_buffer.capacity());
}
return Protocol::UnownedResultOf::RequestStrictResponseFlexible(
::fidl::Result(ZX_ERR_CANCELED, ::fidl::kErrorChannelUnbound));
}
Protocol::RequestStrictResponseFlexibleResponseContext::
RequestStrictResponseFlexibleResponseContext()
: ::fidl::internal::ResponseContext(
RequestStrictResponseFlexibleResponse::Type,
kProtocol_RequestStrictResponseFlexible_Ordinal) {}
void Protocol::RequestStrictResponseFlexibleResponseContext::OnReply(
uint8_t* reply) {
OnReply(reinterpret_cast<RequestStrictResponseFlexibleResponse*>(reply));
}
::fidl::Result Protocol::ClientImpl::RequestStrictResponseFlexible(
::llcpp::fidl::test::json::StrictFoo s,
::fit::callback<void(::llcpp::fidl::test::json::FlexibleFoo f)> _cb) {
class ResponseContext final
: public RequestStrictResponseFlexibleResponseContext {
public:
ResponseContext(
::fit::callback<void(::llcpp::fidl::test::json::FlexibleFoo f)> cb)
: cb_(std::move(cb)) {}
void OnReply(RequestStrictResponseFlexibleResponse* message) override {
cb_(std::move(message->f));
delete this;
}
void OnError() override { delete this; }
private:
::fit::callback<void(::llcpp::fidl::test::json::FlexibleFoo f)> cb_;
};
auto* _context = new ResponseContext(std::move(_cb));
::fidl::internal::ClientBase::PrepareAsyncTxn(_context);
RequestStrictResponseFlexibleRequest::OwnedOutgoingMessage _request(
_context->Txid(), s);
return _request.GetOutgoingMessage().Write(this, _context);
}
::fidl::Result Protocol::ClientImpl::RequestStrictResponseFlexible(
::fidl::BytePart _request_buffer, ::llcpp::fidl::test::json::StrictFoo s,
RequestStrictResponseFlexibleResponseContext* _context) {
::fidl::internal::ClientBase::PrepareAsyncTxn(_context);
RequestStrictResponseFlexibleRequest::UnownedOutgoingMessage _request(
_request_buffer.data(), _request_buffer.capacity(), _context->Txid(), s);
return _request.GetOutgoingMessage().Write(this, _context);
}
Protocol::ResultOf::RequestFlexibleResponseStrict
Protocol::ClientImpl::RequestFlexibleResponseStrict_Sync(
::llcpp::fidl::test::json::FlexibleFoo s) {
if (auto _channel = ::fidl::internal::ClientBase::GetChannel()) {
return ResultOf::RequestFlexibleResponseStrict(_channel->handle(), s);
}
return Protocol::ResultOf::RequestFlexibleResponseStrict(
::fidl::Result(ZX_ERR_CANCELED, ::fidl::kErrorChannelUnbound));
}
Protocol::UnownedResultOf::RequestFlexibleResponseStrict
Protocol::ClientImpl::RequestFlexibleResponseStrict_Sync(
::fidl::BytePart _request_buffer, ::llcpp::fidl::test::json::FlexibleFoo s,
::fidl::BytePart _response_buffer) {
if (auto _channel = ::fidl::internal::ClientBase::GetChannel()) {
return UnownedResultOf::RequestFlexibleResponseStrict(
_channel->handle(), _request_buffer.data(), _request_buffer.capacity(),
s, _response_buffer.data(), _response_buffer.capacity());
}
return Protocol::UnownedResultOf::RequestFlexibleResponseStrict(
::fidl::Result(ZX_ERR_CANCELED, ::fidl::kErrorChannelUnbound));
}
Protocol::RequestFlexibleResponseStrictResponseContext::
RequestFlexibleResponseStrictResponseContext()
: ::fidl::internal::ResponseContext(
RequestFlexibleResponseStrictResponse::Type,
kProtocol_RequestFlexibleResponseStrict_Ordinal) {}
void Protocol::RequestFlexibleResponseStrictResponseContext::OnReply(
uint8_t* reply) {
OnReply(reinterpret_cast<RequestFlexibleResponseStrictResponse*>(reply));
}
::fidl::Result Protocol::ClientImpl::RequestFlexibleResponseStrict(
::llcpp::fidl::test::json::FlexibleFoo s,
::fit::callback<void(::llcpp::fidl::test::json::StrictFoo f)> _cb) {
class ResponseContext final
: public RequestFlexibleResponseStrictResponseContext {
public:
ResponseContext(
::fit::callback<void(::llcpp::fidl::test::json::StrictFoo f)> cb)
: cb_(std::move(cb)) {}
void OnReply(RequestFlexibleResponseStrictResponse* message) override {
cb_(std::move(message->f));
delete this;
}
void OnError() override { delete this; }
private:
::fit::callback<void(::llcpp::fidl::test::json::StrictFoo f)> cb_;
};
auto* _context = new ResponseContext(std::move(_cb));
::fidl::internal::ClientBase::PrepareAsyncTxn(_context);
RequestFlexibleResponseStrictRequest::OwnedOutgoingMessage _request(
_context->Txid(), s);
return _request.GetOutgoingMessage().Write(this, _context);
}
::fidl::Result Protocol::ClientImpl::RequestFlexibleResponseStrict(
::fidl::BytePart _request_buffer, ::llcpp::fidl::test::json::FlexibleFoo s,
RequestFlexibleResponseStrictResponseContext* _context) {
::fidl::internal::ClientBase::PrepareAsyncTxn(_context);
RequestFlexibleResponseStrictRequest::UnownedOutgoingMessage _request(
_request_buffer.data(), _request_buffer.capacity(), _context->Txid(), s);
return _request.GetOutgoingMessage().Write(this, _context);
}
std::optional<::fidl::UnbindInfo> Protocol::ClientImpl::DispatchEvent(
fidl_msg_t* msg) {
fidl_message_header_t* hdr =
reinterpret_cast<fidl_message_header_t*>(msg->bytes);
switch (hdr->ordinal) {
default:
zx_handle_close_many(msg->handles, msg->num_handles);
return ::fidl::UnbindInfo{::fidl::UnbindInfo::kUnexpectedMessage,
ZX_ERR_NOT_SUPPORTED};
}
return {};
}
namespace methods {
void ProtocolDispatchRequestStrictResponseFlexible(void* interface, void* bytes,
::fidl::Transaction* txn) {
auto message =
reinterpret_cast<Protocol::RequestStrictResponseFlexibleRequest*>(bytes);
Protocol::Interface::RequestStrictResponseFlexibleCompleter::Sync completer(
txn);
reinterpret_cast<Protocol::Interface*>(interface)
->RequestStrictResponseFlexible(std::move(message->s), completer);
}
void ProtocolDispatchRequestFlexibleResponseStrict(void* interface, void* bytes,
::fidl::Transaction* txn) {
auto message =
reinterpret_cast<Protocol::RequestFlexibleResponseStrictRequest*>(bytes);
Protocol::Interface::RequestFlexibleResponseStrictCompleter::Sync completer(
txn);
reinterpret_cast<Protocol::Interface*>(interface)
->RequestFlexibleResponseStrict(std::move(message->s), completer);
}
} // namespace methods
namespace entries {
::fidl::internal::MethodEntry Protocol[] = {
{kProtocol_RequestStrictResponseFlexible_Ordinal,
Protocol::RequestStrictResponseFlexibleRequest::Type,
methods::ProtocolDispatchRequestStrictResponseFlexible},
{kProtocol_RequestFlexibleResponseStrict_Ordinal,
Protocol::RequestFlexibleResponseStrictRequest::Type,
methods::ProtocolDispatchRequestFlexibleResponseStrict},
};
} // namespace entries
::fidl::DispatchResult Protocol::TryDispatch(Interface* impl, fidl_msg_t* msg,
::fidl::Transaction* txn) {
return ::fidl::internal::TryDispatch(
impl, msg, txn, entries::Protocol,
entries::Protocol +
sizeof(entries::Protocol) / sizeof(::fidl::internal::MethodEntry));
}
::fidl::DispatchResult Protocol::Dispatch(Interface* impl, fidl_msg_t* msg,
::fidl::Transaction* txn) {
::fidl::DispatchResult dispatch_result = TryDispatch(impl, msg, txn);
if (dispatch_result == ::fidl::DispatchResult::kNotFound) {
zx_handle_close_many(msg->handles, msg->num_handles);
txn->InternalError(
{::fidl::UnbindInfo::kUnexpectedMessage, ZX_ERR_NOT_SUPPORTED});
}
return dispatch_result;
}
::fidl::Result
Protocol::Interface::RequestStrictResponseFlexibleCompleterBase::Reply(
::llcpp::fidl::test::json::FlexibleFoo f) {
RequestStrictResponseFlexibleResponse::OwnedOutgoingMessage _response{f};
return CompleterBase::SendReply(&_response.GetOutgoingMessage());
}
::fidl::Result
Protocol::Interface::RequestStrictResponseFlexibleCompleterBase::Reply(
::fidl::BytePart _buffer, ::llcpp::fidl::test::json::FlexibleFoo f) {
RequestStrictResponseFlexibleResponse::UnownedOutgoingMessage _response(
_buffer.data(), _buffer.capacity(), f);
return CompleterBase::SendReply(&_response.GetOutgoingMessage());
}
::fidl::Result
Protocol::Interface::RequestFlexibleResponseStrictCompleterBase::Reply(
::llcpp::fidl::test::json::StrictFoo f) {
RequestFlexibleResponseStrictResponse::OwnedOutgoingMessage _response{f};
return CompleterBase::SendReply(&_response.GetOutgoingMessage());
}
::fidl::Result
Protocol::Interface::RequestFlexibleResponseStrictCompleterBase::Reply(
::fidl::BytePart _buffer, ::llcpp::fidl::test::json::StrictFoo f) {
RequestFlexibleResponseStrictResponse::UnownedOutgoingMessage _response(
_buffer.data(), _buffer.capacity(), f);
return CompleterBase::SendReply(&_response.GetOutgoingMessage());
}
void Protocol::RequestStrictResponseFlexibleRequest::_InitHeader(
zx_txid_t _txid) {
fidl_init_txn_header(&_hdr, _txid,
kProtocol_RequestStrictResponseFlexible_Ordinal);
}
void Protocol::RequestStrictResponseFlexibleResponse::_InitHeader() {
fidl_init_txn_header(&_hdr, 0,
kProtocol_RequestStrictResponseFlexible_Ordinal);
}
void Protocol::RequestFlexibleResponseStrictRequest::_InitHeader(
zx_txid_t _txid) {
fidl_init_txn_header(&_hdr, _txid,
kProtocol_RequestFlexibleResponseStrict_Ordinal);
}
void Protocol::RequestFlexibleResponseStrictResponse::_InitHeader() {
fidl_init_txn_header(&_hdr, 0,
kProtocol_RequestFlexibleResponseStrict_Ordinal);
}
} // namespace json
} // namespace test
} // namespace fidl
} // namespace llcpp