blob: aec596e017d2fa25c9e690d8cae0228d9f61a6b3 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#include <fidl_llcpp_dirent.h>
#include <memory>
namespace fidl {
namespace test {
namespace llcpp {
namespace dirent {
namespace {
[[maybe_unused]]
constexpr uint32_t kDirEntTestInterface_CountNumDirectories_Ordinal = 1763037320u;
extern "C" const fidl_type_t fidl_test_llcpp_dirent_DirEntTestInterfaceCountNumDirectoriesRequestTable;
[[maybe_unused]]
constexpr uint32_t kDirEntTestInterface_ReadDir_Ordinal = 5390459u;
extern "C" const fidl_type_t fidl_test_llcpp_dirent_DirEntTestInterfaceReadDirResponseTable;
[[maybe_unused]]
constexpr uint32_t kDirEntTestInterface_ConsumeDirectories_Ordinal = 426073095u;
extern "C" const fidl_type_t fidl_test_llcpp_dirent_DirEntTestInterfaceConsumeDirectoriesRequestTable;
[[maybe_unused]]
constexpr uint32_t kDirEntTestInterface_OnDirents_Ordinal = 1283577530u;
extern "C" const fidl_type_t fidl_test_llcpp_dirent_DirEntTestInterfaceOnDirentsEventTable;
[[maybe_unused]]
constexpr uint32_t kDirEntTestInterface_OneWayDirents_Ordinal = 1810555765u;
extern "C" const fidl_type_t fidl_test_llcpp_dirent_DirEntTestInterfaceOneWayDirentsRequestTable;
} // namespace
zx_status_t DirEntTestInterface::SyncClient::CountNumDirectories(::fidl::VectorView<DirEnt> dirents, int64_t* out_num_dir) {
return DirEntTestInterface::Call::CountNumDirectories(zx::unowned_channel(this->channel_), std::move(dirents), out_num_dir);
}
zx_status_t DirEntTestInterface::Call::CountNumDirectories(zx::unowned_channel _client_end, ::fidl::VectorView<DirEnt> dirents, int64_t* out_num_dir) {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<CountNumDirectoriesRequest>();
std::unique_ptr<uint8_t[]> _write_bytes_unique_ptr(new uint8_t[_kWriteAllocSize]);
uint8_t* _write_bytes = _write_bytes_unique_ptr.get();
CountNumDirectoriesRequest _request = {};
_request._hdr.ordinal = kDirEntTestInterface_CountNumDirectories_Ordinal;
_request.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_request, ::fidl::BytePart(_write_bytes,
_kWriteAllocSize));
if (_linearize_result.status != ZX_OK) {
return _linearize_result.status;
}
::fidl::DecodedMessage<CountNumDirectoriesRequest> _decoded_request = std::move(_linearize_result.message);
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return _encode_request_result.status;
}
constexpr uint32_t _kReadAllocSize = ::fidl::internal::ClampedMessageSize<CountNumDirectoriesResponse>();
FIDL_ALIGNDECL uint8_t _read_bytes[_kReadAllocSize];
::fidl::BytePart _response_bytes(_read_bytes, _kReadAllocSize);
auto _call_result = ::fidl::Call<CountNumDirectoriesRequest, CountNumDirectoriesResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(_response_bytes));
if (_call_result.status != ZX_OK) {
return _call_result.status;
}
auto _decode_result = ::fidl::Decode(std::move(_call_result.message));
if (_decode_result.status != ZX_OK) {
return _decode_result.status;
}
auto& _response = *_decode_result.message.message();
*out_num_dir = std::move(_response.num_dir);
return ZX_OK;
}
::fidl::DecodeResult<DirEntTestInterface::CountNumDirectoriesResponse> DirEntTestInterface::SyncClient::CountNumDirectories(::fidl::BytePart _request_buffer, ::fidl::VectorView<DirEnt> dirents, ::fidl::BytePart _response_buffer, int64_t* out_num_dir) {
return DirEntTestInterface::Call::CountNumDirectories(zx::unowned_channel(this->channel_), std::move(_request_buffer), std::move(dirents), std::move(_response_buffer), out_num_dir);
}
::fidl::DecodeResult<DirEntTestInterface::CountNumDirectoriesResponse> DirEntTestInterface::Call::CountNumDirectories(zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::VectorView<DirEnt> dirents, ::fidl::BytePart _response_buffer, int64_t* out_num_dir) {
if (_request_buffer.capacity() < CountNumDirectoriesRequest::PrimarySize) {
return ::fidl::DecodeResult<CountNumDirectoriesResponse>(ZX_ERR_BUFFER_TOO_SMALL, ::fidl::internal::kErrorRequestBufferTooSmall);
}
CountNumDirectoriesRequest _request = {};
_request._hdr.ordinal = kDirEntTestInterface_CountNumDirectories_Ordinal;
_request.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_request, std::move(_request_buffer));
if (_linearize_result.status != ZX_OK) {
return ::fidl::DecodeResult<CountNumDirectoriesResponse>(_linearize_result.status, _linearize_result.error);
}
::fidl::DecodedMessage<CountNumDirectoriesRequest> _decoded_request = std::move(_linearize_result.message);
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return ::fidl::DecodeResult<CountNumDirectoriesResponse>(_encode_request_result.status, _encode_request_result.error);
}
auto _call_result = ::fidl::Call<CountNumDirectoriesRequest, CountNumDirectoriesResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(_response_buffer));
if (_call_result.status != ZX_OK) {
return ::fidl::DecodeResult<CountNumDirectoriesResponse>(_call_result.status, _call_result.error);
}
auto _decode_result = ::fidl::Decode(std::move(_call_result.message));
if (_decode_result.status != ZX_OK) {
return _decode_result;
}
auto& _response = *_decode_result.message.message();
*out_num_dir = std::move(_response.num_dir);
return _decode_result;
}
::fidl::DecodeResult<DirEntTestInterface::CountNumDirectoriesResponse> DirEntTestInterface::SyncClient::CountNumDirectories(::fidl::DecodedMessage<CountNumDirectoriesRequest> params, ::fidl::BytePart response_buffer) {
return DirEntTestInterface::Call::CountNumDirectories(zx::unowned_channel(this->channel_), std::move(params), std::move(response_buffer));
}
::fidl::DecodeResult<DirEntTestInterface::CountNumDirectoriesResponse> DirEntTestInterface::Call::CountNumDirectories(zx::unowned_channel _client_end, ::fidl::DecodedMessage<CountNumDirectoriesRequest> params, ::fidl::BytePart response_buffer) {
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_CountNumDirectories_Ordinal;
auto _encode_request_result = ::fidl::Encode(std::move(params));
if (_encode_request_result.status != ZX_OK) {
return ::fidl::DecodeResult<DirEntTestInterface::CountNumDirectoriesResponse>(
_encode_request_result.status,
_encode_request_result.error,
::fidl::DecodedMessage<DirEntTestInterface::CountNumDirectoriesResponse>());
}
auto _call_result = ::fidl::Call<CountNumDirectoriesRequest, CountNumDirectoriesResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
if (_call_result.status != ZX_OK) {
return ::fidl::DecodeResult<DirEntTestInterface::CountNumDirectoriesResponse>(
_call_result.status,
_call_result.error,
::fidl::DecodedMessage<DirEntTestInterface::CountNumDirectoriesResponse>());
}
return ::fidl::Decode(std::move(_call_result.message));
}
::fidl::DecodeResult<DirEntTestInterface::ReadDirResponse> DirEntTestInterface::SyncClient::ReadDir(::fidl::BytePart _response_buffer, ::fidl::VectorView<DirEnt>* out_dirents) {
return DirEntTestInterface::Call::ReadDir(zx::unowned_channel(this->channel_), std::move(_response_buffer), out_dirents);
}
::fidl::DecodeResult<DirEntTestInterface::ReadDirResponse> DirEntTestInterface::Call::ReadDir(zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer, ::fidl::VectorView<DirEnt>* out_dirents) {
FIDL_ALIGNDECL uint8_t _write_bytes[sizeof(ReadDirRequest)] = {};
::fidl::BytePart _request_buffer(_write_bytes, sizeof(_write_bytes));
auto& _request = *reinterpret_cast<ReadDirRequest*>(_request_buffer.data());
_request._hdr.ordinal = kDirEntTestInterface_ReadDir_Ordinal;
_request_buffer.set_actual(sizeof(ReadDirRequest));
::fidl::DecodedMessage<ReadDirRequest> _decoded_request(std::move(_request_buffer));
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return ::fidl::DecodeResult<ReadDirResponse>(_encode_request_result.status, _encode_request_result.error);
}
auto _call_result = ::fidl::Call<ReadDirRequest, ReadDirResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(_response_buffer));
if (_call_result.status != ZX_OK) {
return ::fidl::DecodeResult<ReadDirResponse>(_call_result.status, _call_result.error);
}
auto _decode_result = ::fidl::Decode(std::move(_call_result.message));
if (_decode_result.status != ZX_OK) {
return _decode_result;
}
auto& _response = *_decode_result.message.message();
*out_dirents = std::move(_response.dirents);
return _decode_result;
}
::fidl::DecodeResult<DirEntTestInterface::ReadDirResponse> DirEntTestInterface::SyncClient::ReadDir(::fidl::BytePart response_buffer) {
return DirEntTestInterface::Call::ReadDir(zx::unowned_channel(this->channel_), std::move(response_buffer));
}
::fidl::DecodeResult<DirEntTestInterface::ReadDirResponse> DirEntTestInterface::Call::ReadDir(zx::unowned_channel _client_end, ::fidl::BytePart response_buffer) {
FIDL_ALIGNDECL uint8_t _write_bytes[sizeof(ReadDirRequest)] = {};
constexpr uint32_t _write_num_bytes = sizeof(ReadDirRequest);
::fidl::BytePart _request_buffer(_write_bytes, sizeof(_write_bytes), _write_num_bytes);
::fidl::DecodedMessage<ReadDirRequest> params(std::move(_request_buffer));
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_ReadDir_Ordinal;
auto _encode_request_result = ::fidl::Encode(std::move(params));
if (_encode_request_result.status != ZX_OK) {
return ::fidl::DecodeResult<DirEntTestInterface::ReadDirResponse>(
_encode_request_result.status,
_encode_request_result.error,
::fidl::DecodedMessage<DirEntTestInterface::ReadDirResponse>());
}
auto _call_result = ::fidl::Call<ReadDirRequest, ReadDirResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
if (_call_result.status != ZX_OK) {
return ::fidl::DecodeResult<DirEntTestInterface::ReadDirResponse>(
_call_result.status,
_call_result.error,
::fidl::DecodedMessage<DirEntTestInterface::ReadDirResponse>());
}
return ::fidl::Decode(std::move(_call_result.message));
}
zx_status_t DirEntTestInterface::SyncClient::ConsumeDirectories(::fidl::VectorView<DirEnt> dirents) {
return DirEntTestInterface::Call::ConsumeDirectories(zx::unowned_channel(this->channel_), std::move(dirents));
}
zx_status_t DirEntTestInterface::Call::ConsumeDirectories(zx::unowned_channel _client_end, ::fidl::VectorView<DirEnt> dirents) {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<ConsumeDirectoriesRequest>();
FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize];
ConsumeDirectoriesRequest _request = {};
_request._hdr.ordinal = kDirEntTestInterface_ConsumeDirectories_Ordinal;
_request.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_request, ::fidl::BytePart(_write_bytes,
_kWriteAllocSize));
if (_linearize_result.status != ZX_OK) {
return _linearize_result.status;
}
::fidl::DecodedMessage<ConsumeDirectoriesRequest> _decoded_request = std::move(_linearize_result.message);
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return _encode_request_result.status;
}
constexpr uint32_t _kReadAllocSize = ::fidl::internal::ClampedMessageSize<ConsumeDirectoriesResponse>();
FIDL_ALIGNDECL uint8_t _read_bytes[_kReadAllocSize];
::fidl::BytePart _response_bytes(_read_bytes, _kReadAllocSize);
auto _call_result = ::fidl::Call<ConsumeDirectoriesRequest, ConsumeDirectoriesResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(_response_bytes));
if (_call_result.status != ZX_OK) {
return _call_result.status;
}
auto _decode_result = ::fidl::Decode(std::move(_call_result.message));
if (_decode_result.status != ZX_OK) {
return _decode_result.status;
}
return ZX_OK;
}
::fidl::DecodeResult<DirEntTestInterface::ConsumeDirectoriesResponse> DirEntTestInterface::SyncClient::ConsumeDirectories(::fidl::BytePart _request_buffer, ::fidl::VectorView<DirEnt> dirents) {
return DirEntTestInterface::Call::ConsumeDirectories(zx::unowned_channel(this->channel_), std::move(_request_buffer), std::move(dirents));
}
::fidl::DecodeResult<DirEntTestInterface::ConsumeDirectoriesResponse> DirEntTestInterface::Call::ConsumeDirectories(zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::VectorView<DirEnt> dirents) {
if (_request_buffer.capacity() < ConsumeDirectoriesRequest::PrimarySize) {
return ::fidl::DecodeResult<ConsumeDirectoriesResponse>(ZX_ERR_BUFFER_TOO_SMALL, ::fidl::internal::kErrorRequestBufferTooSmall);
}
ConsumeDirectoriesRequest _request = {};
_request._hdr.ordinal = kDirEntTestInterface_ConsumeDirectories_Ordinal;
_request.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_request, std::move(_request_buffer));
if (_linearize_result.status != ZX_OK) {
return ::fidl::DecodeResult<ConsumeDirectoriesResponse>(_linearize_result.status, _linearize_result.error);
}
::fidl::DecodedMessage<ConsumeDirectoriesRequest> _decoded_request = std::move(_linearize_result.message);
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return ::fidl::DecodeResult<ConsumeDirectoriesResponse>(_encode_request_result.status, _encode_request_result.error);
}
constexpr uint32_t _kReadAllocSize = ::fidl::internal::ClampedMessageSize<ConsumeDirectoriesResponse>();
FIDL_ALIGNDECL uint8_t _read_bytes[_kReadAllocSize];
::fidl::BytePart _response_buffer(_read_bytes, sizeof(_read_bytes));
auto _call_result = ::fidl::Call<ConsumeDirectoriesRequest, ConsumeDirectoriesResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(_response_buffer));
if (_call_result.status != ZX_OK) {
return ::fidl::DecodeResult<ConsumeDirectoriesResponse>(_call_result.status, _call_result.error);
}
auto _decode_result = ::fidl::Decode(std::move(_call_result.message));
if (_decode_result.status != ZX_OK) {
return _decode_result;
}
return _decode_result;
}
zx_status_t DirEntTestInterface::SyncClient::ConsumeDirectories(::fidl::DecodedMessage<ConsumeDirectoriesRequest> params) {
return DirEntTestInterface::Call::ConsumeDirectories(zx::unowned_channel(this->channel_), std::move(params));
}
zx_status_t DirEntTestInterface::Call::ConsumeDirectories(zx::unowned_channel _client_end, ::fidl::DecodedMessage<ConsumeDirectoriesRequest> params) {
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_ConsumeDirectories_Ordinal;
auto _encode_request_result = ::fidl::Encode(std::move(params));
if (_encode_request_result.status != ZX_OK) {
return _encode_request_result.status;
}
constexpr uint32_t _kReadAllocSize = ::fidl::internal::ClampedMessageSize<ConsumeDirectoriesResponse>();
FIDL_ALIGNDECL uint8_t _read_bytes[_kReadAllocSize];
::fidl::BytePart response_buffer(_read_bytes, sizeof(_read_bytes));
auto _call_result = ::fidl::Call<ConsumeDirectoriesRequest, ConsumeDirectoriesResponse>(
std::move(_client_end), std::move(_encode_request_result.message), std::move(response_buffer));
if (_call_result.status != ZX_OK) {
return _call_result.status;
}
auto _decode_result = ::fidl::Decode(std::move(_call_result.message));
return _decode_result.status;
}
zx_status_t DirEntTestInterface::SyncClient::OneWayDirents(::fidl::VectorView<DirEnt> dirents, ::zx::eventpair ep) {
return DirEntTestInterface::Call::OneWayDirents(zx::unowned_channel(this->channel_), std::move(dirents), std::move(ep));
}
zx_status_t DirEntTestInterface::Call::OneWayDirents(zx::unowned_channel _client_end, ::fidl::VectorView<DirEnt> dirents, ::zx::eventpair ep) {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<OneWayDirentsRequest>();
std::unique_ptr<uint8_t[]> _write_bytes_unique_ptr(new uint8_t[_kWriteAllocSize]);
uint8_t* _write_bytes = _write_bytes_unique_ptr.get();
OneWayDirentsRequest _request = {};
_request._hdr.ordinal = kDirEntTestInterface_OneWayDirents_Ordinal;
_request.dirents = std::move(dirents);
_request.ep = std::move(ep);
auto _linearize_result = ::fidl::Linearize(&_request, ::fidl::BytePart(_write_bytes,
_kWriteAllocSize));
if (_linearize_result.status != ZX_OK) {
return _linearize_result.status;
}
::fidl::DecodedMessage<OneWayDirentsRequest> _decoded_request = std::move(_linearize_result.message);
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return _encode_request_result.status;
}
return ::fidl::Write(std::move(_client_end), std::move(_encode_request_result.message));
}
zx_status_t DirEntTestInterface::SyncClient::OneWayDirents(::fidl::BytePart _request_buffer, ::fidl::VectorView<DirEnt> dirents, ::zx::eventpair ep) {
return DirEntTestInterface::Call::OneWayDirents(zx::unowned_channel(this->channel_), std::move(_request_buffer), std::move(dirents), std::move(ep));
}
zx_status_t DirEntTestInterface::Call::OneWayDirents(zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::VectorView<DirEnt> dirents, ::zx::eventpair ep) {
if (_request_buffer.capacity() < OneWayDirentsRequest::PrimarySize) {
return ZX_ERR_BUFFER_TOO_SMALL;
}
OneWayDirentsRequest _request = {};
_request._hdr.ordinal = kDirEntTestInterface_OneWayDirents_Ordinal;
_request.dirents = std::move(dirents);
_request.ep = std::move(ep);
auto _linearize_result = ::fidl::Linearize(&_request, std::move(_request_buffer));
if (_linearize_result.status != ZX_OK) {
return _linearize_result.status;
}
::fidl::DecodedMessage<OneWayDirentsRequest> _decoded_request = std::move(_linearize_result.message);
auto _encode_request_result = ::fidl::Encode(std::move(_decoded_request));
if (_encode_request_result.status != ZX_OK) {
return _encode_request_result.status;
}
return ::fidl::Write(std::move(_client_end), std::move(_encode_request_result.message));
}
zx_status_t DirEntTestInterface::SyncClient::OneWayDirents(::fidl::DecodedMessage<OneWayDirentsRequest> params) {
return DirEntTestInterface::Call::OneWayDirents(zx::unowned_channel(this->channel_), std::move(params));
}
zx_status_t DirEntTestInterface::Call::OneWayDirents(zx::unowned_channel _client_end, ::fidl::DecodedMessage<OneWayDirentsRequest> params) {
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_OneWayDirents_Ordinal;
auto _encode_request_result = ::fidl::Encode(std::move(params));
if (_encode_request_result.status != ZX_OK) {
return _encode_request_result.status;
}
return ::fidl::Write(std::move(_client_end), std::move(_encode_request_result.message));
}
zx_status_t DirEntTestInterface::SyncClient::HandleEvents(DirEntTestInterface::EventHandlers handlers) {
return DirEntTestInterface::Call::HandleEvents(zx::unowned_channel(channel_), std::move(handlers));
}
zx_status_t DirEntTestInterface::Call::HandleEvents(zx::unowned_channel client_end,
DirEntTestInterface::EventHandlers handlers) {
zx_status_t status = client_end->wait_one(ZX_CHANNEL_READABLE | ZX_CHANNEL_PEER_CLOSED,
zx::time::infinite(),
nullptr);
if (status != ZX_OK) {
return status;
}
constexpr uint32_t kReadAllocSize = ([]() constexpr {
uint32_t x = 0;
if (::fidl::internal::ClampedMessageSize<OnDirentsResponse>() >= x) {
x = ::fidl::internal::ClampedMessageSize<OnDirentsResponse>();
}
return x;
})();
constexpr uint32_t kHandleAllocSize = ([]() constexpr {
uint32_t x = 0;
if (OnDirentsResponse::MaxNumHandles >= x) {
x = OnDirentsResponse::MaxNumHandles;
}
if (x > ZX_CHANNEL_MAX_MSG_HANDLES) {
x = ZX_CHANNEL_MAX_MSG_HANDLES;
}
return x;
})();
std::unique_ptr<uint8_t[]> read_bytes_unique_ptr(new uint8_t[kReadAllocSize]);
uint8_t* read_bytes = read_bytes_unique_ptr.get();
zx_handle_t read_handles[kHandleAllocSize];
uint32_t actual_bytes;
uint32_t actual_handles;
status = client_end->read(ZX_CHANNEL_READ_MAY_DISCARD,
read_bytes, read_handles,
kReadAllocSize, kHandleAllocSize,
&actual_bytes, &actual_handles);
if (status == ZX_ERR_BUFFER_TOO_SMALL) {
// Message size is unexpectedly larger than calculated.
// This can only be due to a newer version of the protocol defining a new event,
// whose size exceeds the maximum of known events in the current protocol.
return handlers.unknown();
}
if (status != ZX_OK) {
return status;
}
if (actual_bytes < sizeof(fidl_message_header_t)) {
zx_handle_close_many(read_handles, actual_handles);
return ZX_ERR_INVALID_ARGS;
}
auto msg = fidl_msg_t {
.bytes = read_bytes,
.handles = read_handles,
.num_bytes = actual_bytes,
.num_handles = actual_handles
};
fidl_message_header_t* hdr = reinterpret_cast<fidl_message_header_t*>(msg.bytes);
switch (hdr->ordinal) {
case kDirEntTestInterface_OnDirents_Ordinal: {
auto result = ::fidl::DecodeAs<OnDirentsResponse>(&msg);
if (result.status != ZX_OK) {
return result.status;
}
auto message = result.message.message();
return handlers.on_dirents(std::move(message->dirents));
}
default:
zx_handle_close_many(read_handles, actual_handles);
return handlers.unknown();
}
}
bool DirEntTestInterface::TryDispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
if (msg->num_bytes < sizeof(fidl_message_header_t)) {
zx_handle_close_many(msg->handles, msg->num_handles);
txn->Close(ZX_ERR_INVALID_ARGS);
return true;
}
fidl_message_header_t* hdr = reinterpret_cast<fidl_message_header_t*>(msg->bytes);
switch (hdr->ordinal) {
case kDirEntTestInterface_CountNumDirectories_Ordinal: {
auto result = ::fidl::DecodeAs<CountNumDirectoriesRequest>(msg);
if (result.status != ZX_OK) {
txn->Close(ZX_ERR_INVALID_ARGS);
return true;
}
auto message = result.message.message();
impl->CountNumDirectories(std::move(message->dirents),
Interface::CountNumDirectoriesCompleter::Sync(txn));
return true;
}
case kDirEntTestInterface_ReadDir_Ordinal: {
auto result = ::fidl::DecodeAs<ReadDirRequest>(msg);
if (result.status != ZX_OK) {
txn->Close(ZX_ERR_INVALID_ARGS);
return true;
}
impl->ReadDir(
Interface::ReadDirCompleter::Sync(txn));
return true;
}
case kDirEntTestInterface_ConsumeDirectories_Ordinal: {
auto result = ::fidl::DecodeAs<ConsumeDirectoriesRequest>(msg);
if (result.status != ZX_OK) {
txn->Close(ZX_ERR_INVALID_ARGS);
return true;
}
auto message = result.message.message();
impl->ConsumeDirectories(std::move(message->dirents),
Interface::ConsumeDirectoriesCompleter::Sync(txn));
return true;
}
case kDirEntTestInterface_OneWayDirents_Ordinal: {
auto result = ::fidl::DecodeAs<OneWayDirentsRequest>(msg);
if (result.status != ZX_OK) {
txn->Close(ZX_ERR_INVALID_ARGS);
return true;
}
auto message = result.message.message();
impl->OneWayDirents(std::move(message->dirents), std::move(message->ep),
Interface::OneWayDirentsCompleter::Sync(txn));
return true;
}
default: {
return false;
}
}
}
bool DirEntTestInterface::Dispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
bool found = TryDispatch(impl, msg, txn);
if (!found) {
zx_handle_close_many(msg->handles, msg->num_handles);
txn->Close(ZX_ERR_NOT_SUPPORTED);
}
return found;
}
void DirEntTestInterface::Interface::CountNumDirectoriesCompleterBase::Reply(int64_t num_dir) {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<CountNumDirectoriesResponse>();
FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize] = {};
auto& _response = *reinterpret_cast<CountNumDirectoriesResponse*>(_write_bytes);
_response._hdr.ordinal = kDirEntTestInterface_CountNumDirectories_Ordinal;
_response.num_dir = std::move(num_dir);
::fidl::BytePart _response_bytes(_write_bytes, _kWriteAllocSize, sizeof(CountNumDirectoriesResponse));
CompleterBase::SendReply(::fidl::DecodedMessage<CountNumDirectoriesResponse>(std::move(_response_bytes)));
}
void DirEntTestInterface::Interface::CountNumDirectoriesCompleterBase::Reply(::fidl::BytePart _buffer, int64_t num_dir) {
if (_buffer.capacity() < CountNumDirectoriesResponse::PrimarySize) {
CompleterBase::Close(ZX_ERR_INTERNAL);
return;
}
auto& _response = *reinterpret_cast<CountNumDirectoriesResponse*>(_buffer.data());
_response._hdr.ordinal = kDirEntTestInterface_CountNumDirectories_Ordinal;
_response.num_dir = std::move(num_dir);
_buffer.set_actual(sizeof(CountNumDirectoriesResponse));
CompleterBase::SendReply(::fidl::DecodedMessage<CountNumDirectoriesResponse>(std::move(_buffer)));
}
void DirEntTestInterface::Interface::CountNumDirectoriesCompleterBase::Reply(::fidl::DecodedMessage<CountNumDirectoriesResponse> params) {
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_CountNumDirectories_Ordinal;
CompleterBase::SendReply(std::move(params));
}
void DirEntTestInterface::Interface::ReadDirCompleterBase::Reply(::fidl::VectorView<DirEnt> dirents) {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<ReadDirResponse>();
FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize];
ReadDirResponse _response = {};
_response._hdr.ordinal = kDirEntTestInterface_ReadDir_Ordinal;
_response.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_response, ::fidl::BytePart(_write_bytes,
_kWriteAllocSize));
if (_linearize_result.status != ZX_OK) {
CompleterBase::Close(ZX_ERR_INTERNAL);
return;
}
CompleterBase::SendReply(std::move(_linearize_result.message));
}
void DirEntTestInterface::Interface::ReadDirCompleterBase::Reply(::fidl::BytePart _buffer, ::fidl::VectorView<DirEnt> dirents) {
if (_buffer.capacity() < ReadDirResponse::PrimarySize) {
CompleterBase::Close(ZX_ERR_INTERNAL);
return;
}
ReadDirResponse _response = {};
_response._hdr.ordinal = kDirEntTestInterface_ReadDir_Ordinal;
_response.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_response, std::move(_buffer));
if (_linearize_result.status != ZX_OK) {
CompleterBase::Close(ZX_ERR_INTERNAL);
return;
}
CompleterBase::SendReply(std::move(_linearize_result.message));
}
void DirEntTestInterface::Interface::ReadDirCompleterBase::Reply(::fidl::DecodedMessage<ReadDirResponse> params) {
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_ReadDir_Ordinal;
CompleterBase::SendReply(std::move(params));
}
void DirEntTestInterface::Interface::ConsumeDirectoriesCompleterBase::Reply() {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<ConsumeDirectoriesResponse>();
FIDL_ALIGNDECL uint8_t _write_bytes[_kWriteAllocSize] = {};
auto& _response = *reinterpret_cast<ConsumeDirectoriesResponse*>(_write_bytes);
_response._hdr.ordinal = kDirEntTestInterface_ConsumeDirectories_Ordinal;
::fidl::BytePart _response_bytes(_write_bytes, _kWriteAllocSize, sizeof(ConsumeDirectoriesResponse));
CompleterBase::SendReply(::fidl::DecodedMessage<ConsumeDirectoriesResponse>(std::move(_response_bytes)));
}
zx_status_t DirEntTestInterface::SendOnDirentsEvent(::zx::unowned_channel _chan, ::fidl::VectorView<DirEnt> dirents) {
constexpr uint32_t _kWriteAllocSize = ::fidl::internal::ClampedMessageSize<OnDirentsResponse>();
std::unique_ptr<uint8_t[]> _write_bytes_unique_ptr(new uint8_t[_kWriteAllocSize]);
uint8_t* _write_bytes = _write_bytes_unique_ptr.get();
OnDirentsResponse _response = {};
_response._hdr = {};
_response._hdr.ordinal = kDirEntTestInterface_OnDirents_Ordinal;
_response.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_response, ::fidl::BytePart(_write_bytes,
_kWriteAllocSize));
if (_linearize_result.status != ZX_OK) {
return _linearize_result.status;
}
return ::fidl::Write(zx::unowned_channel(_chan), std::move(_linearize_result.message));
}
zx_status_t DirEntTestInterface::SendOnDirentsEvent(::zx::unowned_channel _chan, ::fidl::BytePart _buffer, ::fidl::VectorView<DirEnt> dirents) {
if (_buffer.capacity() < OnDirentsResponse::PrimarySize) {
return ZX_ERR_BUFFER_TOO_SMALL;
}
OnDirentsResponse _response = {};
_response._hdr = {};
_response._hdr.ordinal = kDirEntTestInterface_OnDirents_Ordinal;
_response.dirents = std::move(dirents);
auto _linearize_result = ::fidl::Linearize(&_response, std::move(_buffer));
if (_linearize_result.status != ZX_OK) {
return _linearize_result.status;
}
return ::fidl::Write(zx::unowned_channel(_chan), std::move(_linearize_result.message));
}
zx_status_t DirEntTestInterface::SendOnDirentsEvent(::zx::unowned_channel _chan, ::fidl::DecodedMessage<OnDirentsResponse> params) {
params.message()->_hdr = {};
params.message()->_hdr.ordinal = kDirEntTestInterface_OnDirents_Ordinal;
return ::fidl::Write(zx::unowned_channel(_chan), std::move(params));
}
} // namespace dirent
} // namespace llcpp
} // namespace test
} // namespace fidl