blob: 60d79099b9a63dde10e0dc47ba763ba44649c861 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <lib/fidl/internal.h>
#include <lib/fidl/txn_header.h>
#include <lib/fidl/llcpp/array.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/connect_service.h>
#include <lib/fidl/llcpp/service_handler_interface.h>
#include <lib/fidl/llcpp/string_view.h>
#include <lib/fidl/llcpp/sync_call.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/fidl/llcpp/transaction.h>
#include <lib/fidl/llcpp/vector_view.h>
#include <lib/fit/function.h>
#include <lib/zx/channel.h>
#include <lib/zx/handle.h>
#include <zircon/fidl.h>
#include <fuchsia/io/llcpp/fidl.h>
namespace llcpp {
namespace fuchsia {
namespace fshost {
class Filesystems;
class Admin;
class Registry;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsCloneRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsCloneResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsCloseRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsCloseResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsDescribeRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsDescribeResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsOnOpenRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsOnOpenEventTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsSyncRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsSyncResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsGetAttrRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsGetAttrResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsSetAttrRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsSetAttrResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsNodeGetFlagsRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsNodeGetFlagsResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsNodeSetFlagsRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsNodeSetFlagsResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsOpenRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsOpenResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsUnlinkRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsUnlinkResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsReadDirentsRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsReadDirentsResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsRewindRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsRewindResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsGetTokenRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsGetTokenResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsRenameRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsRenameResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsLinkRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsLinkResponseTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsWatchRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_FilesystemsWatchResponseTable;
// A collection of all registered filesystems.
class Filesystems final {
Filesystems() = delete;
public:
static constexpr char Name[] = "fuchsia.fshost.Filesystems";
struct CloneRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
uint32_t flags;
::zx::channel object;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsCloneRequestTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr uint32_t AltPrimarySize = 24;
static constexpr uint32_t AltMaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
};
struct CloseResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsCloseResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using CloseRequest = ::fidl::AnyZeroArgMessage;
struct DescribeResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
::llcpp::fuchsia::io::NodeInfo info;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsDescribeResponseTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 40;
static constexpr uint32_t MaxOutOfLine = 24;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = true;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using DescribeRequest = ::fidl::AnyZeroArgMessage;
struct OnOpenResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
::llcpp::fuchsia::io::NodeInfo info;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsOnOpenEventTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 48;
static constexpr uint32_t MaxOutOfLine = 24;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = true;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct SyncResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsSyncResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using SyncRequest = ::fidl::AnyZeroArgMessage;
struct GetAttrResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
::llcpp::fuchsia::io::NodeAttributes attributes;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsGetAttrResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 80;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using GetAttrRequest = ::fidl::AnyZeroArgMessage;
struct SetAttrResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsSetAttrResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct SetAttrRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
uint32_t flags;
::llcpp::fuchsia::io::NodeAttributes attributes;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsSetAttrRequestTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 80;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr uint32_t AltPrimarySize = 80;
static constexpr uint32_t AltMaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = SetAttrResponse;
};
struct NodeGetFlagsResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
uint32_t flags;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsNodeGetFlagsResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using NodeGetFlagsRequest = ::fidl::AnyZeroArgMessage;
struct NodeSetFlagsResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsNodeSetFlagsResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct NodeSetFlagsRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
uint32_t flags;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsNodeSetFlagsRequestTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr uint32_t AltPrimarySize = 24;
static constexpr uint32_t AltMaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = NodeSetFlagsResponse;
};
struct OpenRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
uint32_t flags;
uint32_t mode;
::fidl::StringView path;
::zx::channel object;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsOpenRequestTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 48;
static constexpr uint32_t MaxOutOfLine = 4096;
static constexpr uint32_t AltPrimarySize = 48;
static constexpr uint32_t AltMaxOutOfLine = 4096;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
};
struct UnlinkResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsUnlinkResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct UnlinkRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
::fidl::StringView path;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsUnlinkRequestTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 32;
static constexpr uint32_t MaxOutOfLine = 4096;
static constexpr uint32_t AltPrimarySize = 32;
static constexpr uint32_t AltMaxOutOfLine = 4096;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = UnlinkResponse;
};
struct ReadDirentsResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
::fidl::VectorView<uint8_t> dirents;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsReadDirentsResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 40;
static constexpr uint32_t MaxOutOfLine = 8192;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct ReadDirentsRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
uint64_t max_bytes;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsReadDirentsRequestTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr uint32_t AltPrimarySize = 24;
static constexpr uint32_t AltMaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = ReadDirentsResponse;
};
struct RewindResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsRewindResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using RewindRequest = ::fidl::AnyZeroArgMessage;
struct GetTokenResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
::zx::handle token;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsGetTokenResponseTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
using GetTokenRequest = ::fidl::AnyZeroArgMessage;
struct RenameResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsRenameResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct RenameRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
::fidl::StringView src;
::zx::handle dst_parent_token;
::fidl::StringView dst;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsRenameRequestTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 56;
static constexpr uint32_t MaxOutOfLine = 8192;
static constexpr uint32_t AltPrimarySize = 56;
static constexpr uint32_t AltMaxOutOfLine = 8192;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = RenameResponse;
};
struct LinkResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsLinkResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct LinkRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
::fidl::StringView src;
::zx::handle dst_parent_token;
::fidl::StringView dst;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsLinkRequestTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 56;
static constexpr uint32_t MaxOutOfLine = 8192;
static constexpr uint32_t AltPrimarySize = 56;
static constexpr uint32_t AltMaxOutOfLine = 8192;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = true;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = LinkResponse;
};
struct WatchResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsWatchResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct WatchRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
uint32_t mask;
uint32_t options;
::zx::channel watcher;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_FilesystemsWatchRequestTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 32;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr uint32_t AltPrimarySize = 32;
static constexpr uint32_t AltMaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = WatchResponse;
};
struct EventHandlers {
// An event produced eagerly by a FIDL server if requested by `OPEN_FLAG_DESCRIBE`.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is `ZX_OK`, `info` contains descriptive information about the object
// (the same as would be returned by `Describe`).
fit::callback<zx_status_t(int32_t s, ::llcpp::fuchsia::io::NodeInfo info)> on_open;
// Fallback handler when an unknown ordinal is received.
// Caller may put custom error handling logic here.
fit::callback<zx_status_t()> unknown;
};
// Collection of return types of FIDL calls in this interface.
class ResultOf final {
ResultOf() = delete;
private:
class Clone_Impl final : private ::fidl::internal::StatusAndError {
using Super = ::fidl::internal::StatusAndError;
public:
Clone_Impl(::zx::unowned_channel _client_end, uint32_t flags, ::zx::channel object);
~Clone_Impl() = default;
Clone_Impl(Clone_Impl&& other) = default;
Clone_Impl& operator=(Clone_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
};
template <typename ResponseType>
class Close_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Close_Impl(::zx::unowned_channel _client_end);
~Close_Impl() = default;
Close_Impl(Close_Impl&& other) = default;
Close_Impl& operator=(Close_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Describe_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Describe_Impl(::zx::unowned_channel _client_end);
~Describe_Impl() = default;
Describe_Impl(Describe_Impl&& other) = default;
Describe_Impl& operator=(Describe_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Sync_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Sync_Impl(::zx::unowned_channel _client_end);
~Sync_Impl() = default;
Sync_Impl(Sync_Impl&& other) = default;
Sync_Impl& operator=(Sync_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class GetAttr_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
GetAttr_Impl(::zx::unowned_channel _client_end);
~GetAttr_Impl() = default;
GetAttr_Impl(GetAttr_Impl&& other) = default;
GetAttr_Impl& operator=(GetAttr_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class SetAttr_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
SetAttr_Impl(::zx::unowned_channel _client_end, uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes);
~SetAttr_Impl() = default;
SetAttr_Impl(SetAttr_Impl&& other) = default;
SetAttr_Impl& operator=(SetAttr_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class NodeGetFlags_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
NodeGetFlags_Impl(::zx::unowned_channel _client_end);
~NodeGetFlags_Impl() = default;
NodeGetFlags_Impl(NodeGetFlags_Impl&& other) = default;
NodeGetFlags_Impl& operator=(NodeGetFlags_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class NodeSetFlags_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
NodeSetFlags_Impl(::zx::unowned_channel _client_end, uint32_t flags);
~NodeSetFlags_Impl() = default;
NodeSetFlags_Impl(NodeSetFlags_Impl&& other) = default;
NodeSetFlags_Impl& operator=(NodeSetFlags_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
class Open_Impl final : private ::fidl::internal::StatusAndError {
using Super = ::fidl::internal::StatusAndError;
public:
Open_Impl(::zx::unowned_channel _client_end, uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object);
~Open_Impl() = default;
Open_Impl(Open_Impl&& other) = default;
Open_Impl& operator=(Open_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
};
template <typename ResponseType>
class Unlink_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Unlink_Impl(::zx::unowned_channel _client_end, ::fidl::StringView path);
~Unlink_Impl() = default;
Unlink_Impl(Unlink_Impl&& other) = default;
Unlink_Impl& operator=(Unlink_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class ReadDirents_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
ReadDirents_Impl(::zx::unowned_channel _client_end, uint64_t max_bytes);
~ReadDirents_Impl() = default;
ReadDirents_Impl(ReadDirents_Impl&& other) = default;
ReadDirents_Impl& operator=(ReadDirents_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Rewind_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Rewind_Impl(::zx::unowned_channel _client_end);
~Rewind_Impl() = default;
Rewind_Impl(Rewind_Impl&& other) = default;
Rewind_Impl& operator=(Rewind_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class GetToken_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
GetToken_Impl(::zx::unowned_channel _client_end);
~GetToken_Impl() = default;
GetToken_Impl(GetToken_Impl&& other) = default;
GetToken_Impl& operator=(GetToken_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Rename_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Rename_Impl(::zx::unowned_channel _client_end, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst);
~Rename_Impl() = default;
Rename_Impl(Rename_Impl&& other) = default;
Rename_Impl& operator=(Rename_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Link_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Link_Impl(::zx::unowned_channel _client_end, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst);
~Link_Impl() = default;
Link_Impl(Link_Impl&& other) = default;
Link_Impl& operator=(Link_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Watch_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Watch_Impl(::zx::unowned_channel _client_end, uint32_t mask, uint32_t options, ::zx::channel watcher);
~Watch_Impl() = default;
Watch_Impl(Watch_Impl&& other) = default;
Watch_Impl& operator=(Watch_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
public:
using Clone = Clone_Impl;
using Close = Close_Impl<CloseResponse>;
using Describe = Describe_Impl<DescribeResponse>;
using Sync = Sync_Impl<SyncResponse>;
using GetAttr = GetAttr_Impl<GetAttrResponse>;
using SetAttr = SetAttr_Impl<SetAttrResponse>;
using NodeGetFlags = NodeGetFlags_Impl<NodeGetFlagsResponse>;
using NodeSetFlags = NodeSetFlags_Impl<NodeSetFlagsResponse>;
using Open = Open_Impl;
using Unlink = Unlink_Impl<UnlinkResponse>;
using ReadDirents = ReadDirents_Impl<ReadDirentsResponse>;
using Rewind = Rewind_Impl<RewindResponse>;
using GetToken = GetToken_Impl<GetTokenResponse>;
using Rename = Rename_Impl<RenameResponse>;
using Link = Link_Impl<LinkResponse>;
using Watch = Watch_Impl<WatchResponse>;
};
// Collection of return types of FIDL calls in this interface,
// when the caller-allocate flavor or in-place call is used.
class UnownedResultOf final {
UnownedResultOf() = delete;
private:
class Clone_Impl final : private ::fidl::internal::StatusAndError {
using Super = ::fidl::internal::StatusAndError;
public:
Clone_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, ::zx::channel object);
~Clone_Impl() = default;
Clone_Impl(Clone_Impl&& other) = default;
Clone_Impl& operator=(Clone_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
};
template <typename ResponseType>
class Close_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Close_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~Close_Impl() = default;
Close_Impl(Close_Impl&& other) = default;
Close_Impl& operator=(Close_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Describe_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Describe_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~Describe_Impl() = default;
Describe_Impl(Describe_Impl&& other) = default;
Describe_Impl& operator=(Describe_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Sync_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Sync_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~Sync_Impl() = default;
Sync_Impl(Sync_Impl&& other) = default;
Sync_Impl& operator=(Sync_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class GetAttr_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
GetAttr_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~GetAttr_Impl() = default;
GetAttr_Impl(GetAttr_Impl&& other) = default;
GetAttr_Impl& operator=(GetAttr_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class SetAttr_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
SetAttr_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes, ::fidl::BytePart _response_buffer);
~SetAttr_Impl() = default;
SetAttr_Impl(SetAttr_Impl&& other) = default;
SetAttr_Impl& operator=(SetAttr_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class NodeGetFlags_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
NodeGetFlags_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~NodeGetFlags_Impl() = default;
NodeGetFlags_Impl(NodeGetFlags_Impl&& other) = default;
NodeGetFlags_Impl& operator=(NodeGetFlags_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class NodeSetFlags_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
NodeSetFlags_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, ::fidl::BytePart _response_buffer);
~NodeSetFlags_Impl() = default;
NodeSetFlags_Impl(NodeSetFlags_Impl&& other) = default;
NodeSetFlags_Impl& operator=(NodeSetFlags_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
class Open_Impl final : private ::fidl::internal::StatusAndError {
using Super = ::fidl::internal::StatusAndError;
public:
Open_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object);
~Open_Impl() = default;
Open_Impl(Open_Impl&& other) = default;
Open_Impl& operator=(Open_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
};
template <typename ResponseType>
class Unlink_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Unlink_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::StringView path, ::fidl::BytePart _response_buffer);
~Unlink_Impl() = default;
Unlink_Impl(Unlink_Impl&& other) = default;
Unlink_Impl& operator=(Unlink_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class ReadDirents_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
ReadDirents_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint64_t max_bytes, ::fidl::BytePart _response_buffer);
~ReadDirents_Impl() = default;
ReadDirents_Impl(ReadDirents_Impl&& other) = default;
ReadDirents_Impl& operator=(ReadDirents_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Rewind_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Rewind_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~Rewind_Impl() = default;
Rewind_Impl(Rewind_Impl&& other) = default;
Rewind_Impl& operator=(Rewind_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class GetToken_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
GetToken_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~GetToken_Impl() = default;
GetToken_Impl(GetToken_Impl&& other) = default;
GetToken_Impl& operator=(GetToken_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Rename_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Rename_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, ::fidl::BytePart _response_buffer);
~Rename_Impl() = default;
Rename_Impl(Rename_Impl&& other) = default;
Rename_Impl& operator=(Rename_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Link_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Link_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, ::fidl::BytePart _response_buffer);
~Link_Impl() = default;
Link_Impl(Link_Impl&& other) = default;
Link_Impl& operator=(Link_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
template <typename ResponseType>
class Watch_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Watch_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t mask, uint32_t options, ::zx::channel watcher, ::fidl::BytePart _response_buffer);
~Watch_Impl() = default;
Watch_Impl(Watch_Impl&& other) = default;
Watch_Impl& operator=(Watch_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
public:
using Clone = Clone_Impl;
using Close = Close_Impl<CloseResponse>;
using Describe = Describe_Impl<DescribeResponse>;
using Sync = Sync_Impl<SyncResponse>;
using GetAttr = GetAttr_Impl<GetAttrResponse>;
using SetAttr = SetAttr_Impl<SetAttrResponse>;
using NodeGetFlags = NodeGetFlags_Impl<NodeGetFlagsResponse>;
using NodeSetFlags = NodeSetFlags_Impl<NodeSetFlagsResponse>;
using Open = Open_Impl;
using Unlink = Unlink_Impl<UnlinkResponse>;
using ReadDirents = ReadDirents_Impl<ReadDirentsResponse>;
using Rewind = Rewind_Impl<RewindResponse>;
using GetToken = GetToken_Impl<GetTokenResponse>;
using Rename = Rename_Impl<RenameResponse>;
using Link = Link_Impl<LinkResponse>;
using Watch = Watch_Impl<WatchResponse>;
};
class SyncClient final {
public:
explicit SyncClient(::zx::channel channel) : channel_(std::move(channel)) {}
~SyncClient() = default;
SyncClient(SyncClient&&) = default;
SyncClient& operator=(SyncClient&&) = default;
const ::zx::channel& channel() const { return channel_; }
::zx::channel* mutable_channel() { return &channel_; }
// Create another connection to the same remote object.
//
// `flags` may be any of:
//
// - `OPEN_RIGHT_*`
// - `OPEN_FLAG_APPEND`
// - `OPEN_FLAG_NO_REMOTE`
// - `OPEN_FLAG_DESCRIBE`
// - `CLONE_FLAG_SAME_RIGHTS`
//
// All other flags are ignored.
//
// The `OPEN_RIGHT_*` bits in `flags` request corresponding rights over the resulting
// cloned object.
// The cloned object must have rights less than or equal to the original object.
// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
// `CLONE_FLAG_SAME_RIGHTS`.
// Allocates 24 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Clone Clone(uint32_t flags, ::zx::channel object);
// Create another connection to the same remote object.
//
// `flags` may be any of:
//
// - `OPEN_RIGHT_*`
// - `OPEN_FLAG_APPEND`
// - `OPEN_FLAG_NO_REMOTE`
// - `OPEN_FLAG_DESCRIBE`
// - `CLONE_FLAG_SAME_RIGHTS`
//
// All other flags are ignored.
//
// The `OPEN_RIGHT_*` bits in `flags` request corresponding rights over the resulting
// cloned object.
// The cloned object must have rights less than or equal to the original object.
// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
// `CLONE_FLAG_SAME_RIGHTS`.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Clone Clone(::fidl::BytePart _request_buffer, uint32_t flags, ::zx::channel object);
// Terminates connection with object.
//
// This method does not require any rights.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Close Close();
// Terminates connection with object.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Close Close(::fidl::BytePart _response_buffer);
// Returns extra information about the type of the object.
// If the `Describe` operation fails, the connection is closed.
//
// This method does not require any rights.
// Allocates 80 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Describe Describe();
// Returns extra information about the type of the object.
// If the `Describe` operation fails, the connection is closed.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Describe Describe(::fidl::BytePart _response_buffer);
// Synchronizes updates to the node to the underlying media, if it exists.
//
// This method does not require any rights.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Sync Sync();
// Synchronizes updates to the node to the underlying media, if it exists.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Sync Sync(::fidl::BytePart _response_buffer);
// Acquires information about the node.
//
// This method does not require any rights.
// Allocates 96 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::GetAttr GetAttr();
// Acquires information about the node.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::GetAttr GetAttr(::fidl::BytePart _response_buffer);
// Updates information about the node.
// `flags` may be any of `NODE_ATTRIBUTE_FLAG_*`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 104 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::SetAttr SetAttr(uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes);
// Updates information about the node.
// `flags` may be any of `NODE_ATTRIBUTE_FLAG_*`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::SetAttr SetAttr(::fidl::BytePart _request_buffer, uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes, ::fidl::BytePart _response_buffer);
// Acquires the `Directory.Open` rights and flags used to access this file.
//
// This method does not require any rights.
// This method has the same functionality as GetFlags for File and is
// meant as an in-progress replacement.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::NodeGetFlags NodeGetFlags();
// Acquires the `Directory.Open` rights and flags used to access this file.
//
// This method does not require any rights.
// This method has the same functionality as GetFlags for File and is
// meant as an in-progress replacement.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::NodeGetFlags NodeGetFlags(::fidl::BytePart _response_buffer);
// Changes the `Directory.Open` flags used to access the file.
// Supported flags which can be turned on / off:
// - `OPEN_FLAG_APPEND`
//
// This method does not require any rights.
// This method has the same functionality as SetFlags for File and is
// meant as an in-progress replacement.
// Allocates 48 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::NodeSetFlags NodeSetFlags(uint32_t flags);
// Changes the `Directory.Open` flags used to access the file.
// Supported flags which can be turned on / off:
// - `OPEN_FLAG_APPEND`
//
// This method does not require any rights.
// This method has the same functionality as SetFlags for File and is
// meant as an in-progress replacement.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::NodeSetFlags NodeSetFlags(::fidl::BytePart _request_buffer, uint32_t flags, ::fidl::BytePart _response_buffer);
// Opens a new object relative to this directory object.
//
// `path` may contain multiple segments, separated by "/" characters,
// and should never be empty; i.e., "" is an invalid path.
//
// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
// on the `object` handle, indicating the type of object opened.
//
// If an unknown value is sent for either flags or mode, the connection should
// be closed.
//
// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
// the `object` channel which will be connected to the opened entity.
//
// Rights are never increased. When you open a nested entity within a directory, you may only
// request the same rights as what the directory connection already has, or a subset of those.
// Exceeding those rights causes an access denied error to be transmitted in the
// `OnOpen` event if applicable, and the `object` connection closed.
//
// The caller must specify either one or more of the `OPEN_RIGHT_*` flags, or
// the `OPEN_FLAG_NODE_REFERENCE` flag.
// Request is heap-allocated.
ResultOf::Open Open(uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object);
// Opens a new object relative to this directory object.
//
// `path` may contain multiple segments, separated by "/" characters,
// and should never be empty; i.e., "" is an invalid path.
//
// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
// on the `object` handle, indicating the type of object opened.
//
// If an unknown value is sent for either flags or mode, the connection should
// be closed.
//
// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
// the `object` channel which will be connected to the opened entity.
//
// Rights are never increased. When you open a nested entity within a directory, you may only
// request the same rights as what the directory connection already has, or a subset of those.
// Exceeding those rights causes an access denied error to be transmitted in the
// `OnOpen` event if applicable, and the `object` connection closed.
//
// The caller must specify either one or more of the `OPEN_RIGHT_*` flags, or
// the `OPEN_FLAG_NODE_REFERENCE` flag.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Open Open(::fidl::BytePart _request_buffer, uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object);
// Detaches an object from this directory object.
//
// The underlying object may or may not be deleted after this method
// completes: although the link will be removed from the containing directory,
// objects with multiple references (such as files which are still open)
// will not actually be destroyed until all references are removed.
//
// If a directory is unlinked while it still has an open reference,
// it must become read-only, preventing new entries from being created
// until all references close and the directory is destroyed.
//
// `path` identifies the file which should be detached.
// If `path` contains multiple segments, separated by "/" characters,
// then the directory is traversed, one segment at a time, relative to the
// originally accessed Directory.
//
// Returns:
// `ZX_ERR_ACCESS_DENIED` if the connection (or the underlying filesystem) does not
// allow writable access.
// `ZX_ERR_INVALID_ARGS` if `path` contains ".." segments.
// `ZX_ERR_NOT_EMPTY` if `path` refers to a non-empty directory.
// `ZX_ERR_UNAVAILABLE` if `path` refers to a mount point, containing a remote channel.
// `ZX_ERR_UNAVAILABLE` if `path` is ".".
//
// Other errors may be returned for filesystem-specific reasons.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 24 bytes of response buffer on the stack. Request is heap-allocated.
ResultOf::Unlink Unlink(::fidl::StringView path);
// Detaches an object from this directory object.
//
// The underlying object may or may not be deleted after this method
// completes: although the link will be removed from the containing directory,
// objects with multiple references (such as files which are still open)
// will not actually be destroyed until all references are removed.
//
// If a directory is unlinked while it still has an open reference,
// it must become read-only, preventing new entries from being created
// until all references close and the directory is destroyed.
//
// `path` identifies the file which should be detached.
// If `path` contains multiple segments, separated by "/" characters,
// then the directory is traversed, one segment at a time, relative to the
// originally accessed Directory.
//
// Returns:
// `ZX_ERR_ACCESS_DENIED` if the connection (or the underlying filesystem) does not
// allow writable access.
// `ZX_ERR_INVALID_ARGS` if `path` contains ".." segments.
// `ZX_ERR_NOT_EMPTY` if `path` refers to a non-empty directory.
// `ZX_ERR_UNAVAILABLE` if `path` refers to a mount point, containing a remote channel.
// `ZX_ERR_UNAVAILABLE` if `path` is ".".
//
// Other errors may be returned for filesystem-specific reasons.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Unlink Unlink(::fidl::BytePart _request_buffer, ::fidl::StringView path, ::fidl::BytePart _response_buffer);
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// ```
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name in bytes.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
// ```
//
// This method does not require any rights, since one could always probe for
// directory contents by triggering name conflicts during file creation.
// Allocates 24 bytes of request buffer on the stack. Response is heap-allocated.
ResultOf::ReadDirents ReadDirents(uint64_t max_bytes);
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// ```
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name in bytes.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
// ```
//
// This method does not require any rights, since one could always probe for
// directory contents by triggering name conflicts during file creation.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::ReadDirents ReadDirents(::fidl::BytePart _request_buffer, uint64_t max_bytes, ::fidl::BytePart _response_buffer);
// Resets the directory seek offset.
//
// This method does not require any rights, similar to ReadDirents.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Rewind Rewind();
// Resets the directory seek offset.
//
// This method does not require any rights, similar to ReadDirents.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Rewind Rewind(::fidl::BytePart _response_buffer);
// Acquires a token to a Directory which can be used to identify
// access to it at a later point in time.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::GetToken GetToken();
// Acquires a token to a Directory which can be used to identify
// access to it at a later point in time.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::GetToken GetToken(::fidl::BytePart _response_buffer);
// Renames an object named src to the name dst, in a directory represented by token.
//
// `src/dst` must be resolved object names. Including "/" in any position
// other than the end of the string will return `ZX_ERR_INVALID_ARGS`.
// Returning "/" at the end of either string implies that it must be a
// directory, or else `ZX_ERR_NOT_DIR` should be returned.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 24 bytes of response buffer on the stack. Request is heap-allocated.
ResultOf::Rename Rename(::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst);
// Renames an object named src to the name dst, in a directory represented by token.
//
// `src/dst` must be resolved object names. Including "/" in any position
// other than the end of the string will return `ZX_ERR_INVALID_ARGS`.
// Returning "/" at the end of either string implies that it must be a
// directory, or else `ZX_ERR_NOT_DIR` should be returned.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Rename Rename(::fidl::BytePart _request_buffer, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, ::fidl::BytePart _response_buffer);
// Creates a link to an object named src by the name dst, within a directory represented by
// token.
//
// `src` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// `dst` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 24 bytes of response buffer on the stack. Request is heap-allocated.
ResultOf::Link Link(::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst);
// Creates a link to an object named src by the name dst, within a directory represented by
// token.
//
// `src` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// `dst` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Link Link(::fidl::BytePart _request_buffer, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, ::fidl::BytePart _response_buffer);
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The `watcher` handle will send messages of the form:
// ```
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// ```
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
//
// This method does not require any rights, similar to ReadDirents.
// Allocates 56 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Watch Watch(uint32_t mask, uint32_t options, ::zx::channel watcher);
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The `watcher` handle will send messages of the form:
// ```
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// ```
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
//
// This method does not require any rights, similar to ReadDirents.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::Watch Watch(::fidl::BytePart _request_buffer, uint32_t mask, uint32_t options, ::zx::channel watcher, ::fidl::BytePart _response_buffer);
// Handle all possible events defined in this protocol.
// Blocks to consume exactly one message from the channel, then call the corresponding handler
// defined in |EventHandlers|. The return status of the handler function is folded with any
// transport-level errors and returned.
zx_status_t HandleEvents(EventHandlers handlers);
private:
::zx::channel channel_;
};
// Methods to make a sync FIDL call directly on an unowned channel, avoiding setting up a client.
class Call final {
Call() = delete;
public:
// Create another connection to the same remote object.
//
// `flags` may be any of:
//
// - `OPEN_RIGHT_*`
// - `OPEN_FLAG_APPEND`
// - `OPEN_FLAG_NO_REMOTE`
// - `OPEN_FLAG_DESCRIBE`
// - `CLONE_FLAG_SAME_RIGHTS`
//
// All other flags are ignored.
//
// The `OPEN_RIGHT_*` bits in `flags` request corresponding rights over the resulting
// cloned object.
// The cloned object must have rights less than or equal to the original object.
// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
// `CLONE_FLAG_SAME_RIGHTS`.
// Allocates 24 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Clone Clone(::zx::unowned_channel _client_end, uint32_t flags, ::zx::channel object);
// Create another connection to the same remote object.
//
// `flags` may be any of:
//
// - `OPEN_RIGHT_*`
// - `OPEN_FLAG_APPEND`
// - `OPEN_FLAG_NO_REMOTE`
// - `OPEN_FLAG_DESCRIBE`
// - `CLONE_FLAG_SAME_RIGHTS`
//
// All other flags are ignored.
//
// The `OPEN_RIGHT_*` bits in `flags` request corresponding rights over the resulting
// cloned object.
// The cloned object must have rights less than or equal to the original object.
// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
// `CLONE_FLAG_SAME_RIGHTS`.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Clone Clone(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, ::zx::channel object);
// Terminates connection with object.
//
// This method does not require any rights.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Close Close(::zx::unowned_channel _client_end);
// Terminates connection with object.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Close Close(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Returns extra information about the type of the object.
// If the `Describe` operation fails, the connection is closed.
//
// This method does not require any rights.
// Allocates 80 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Describe Describe(::zx::unowned_channel _client_end);
// Returns extra information about the type of the object.
// If the `Describe` operation fails, the connection is closed.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Describe Describe(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Synchronizes updates to the node to the underlying media, if it exists.
//
// This method does not require any rights.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Sync Sync(::zx::unowned_channel _client_end);
// Synchronizes updates to the node to the underlying media, if it exists.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Sync Sync(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Acquires information about the node.
//
// This method does not require any rights.
// Allocates 96 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::GetAttr GetAttr(::zx::unowned_channel _client_end);
// Acquires information about the node.
//
// This method does not require any rights.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::GetAttr GetAttr(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Updates information about the node.
// `flags` may be any of `NODE_ATTRIBUTE_FLAG_*`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 104 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::SetAttr SetAttr(::zx::unowned_channel _client_end, uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes);
// Updates information about the node.
// `flags` may be any of `NODE_ATTRIBUTE_FLAG_*`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::SetAttr SetAttr(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes, ::fidl::BytePart _response_buffer);
// Acquires the `Directory.Open` rights and flags used to access this file.
//
// This method does not require any rights.
// This method has the same functionality as GetFlags for File and is
// meant as an in-progress replacement.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::NodeGetFlags NodeGetFlags(::zx::unowned_channel _client_end);
// Acquires the `Directory.Open` rights and flags used to access this file.
//
// This method does not require any rights.
// This method has the same functionality as GetFlags for File and is
// meant as an in-progress replacement.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::NodeGetFlags NodeGetFlags(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Changes the `Directory.Open` flags used to access the file.
// Supported flags which can be turned on / off:
// - `OPEN_FLAG_APPEND`
//
// This method does not require any rights.
// This method has the same functionality as SetFlags for File and is
// meant as an in-progress replacement.
// Allocates 48 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::NodeSetFlags NodeSetFlags(::zx::unowned_channel _client_end, uint32_t flags);
// Changes the `Directory.Open` flags used to access the file.
// Supported flags which can be turned on / off:
// - `OPEN_FLAG_APPEND`
//
// This method does not require any rights.
// This method has the same functionality as SetFlags for File and is
// meant as an in-progress replacement.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::NodeSetFlags NodeSetFlags(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, ::fidl::BytePart _response_buffer);
// Opens a new object relative to this directory object.
//
// `path` may contain multiple segments, separated by "/" characters,
// and should never be empty; i.e., "" is an invalid path.
//
// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
// on the `object` handle, indicating the type of object opened.
//
// If an unknown value is sent for either flags or mode, the connection should
// be closed.
//
// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
// the `object` channel which will be connected to the opened entity.
//
// Rights are never increased. When you open a nested entity within a directory, you may only
// request the same rights as what the directory connection already has, or a subset of those.
// Exceeding those rights causes an access denied error to be transmitted in the
// `OnOpen` event if applicable, and the `object` connection closed.
//
// The caller must specify either one or more of the `OPEN_RIGHT_*` flags, or
// the `OPEN_FLAG_NODE_REFERENCE` flag.
// Request is heap-allocated.
static ResultOf::Open Open(::zx::unowned_channel _client_end, uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object);
// Opens a new object relative to this directory object.
//
// `path` may contain multiple segments, separated by "/" characters,
// and should never be empty; i.e., "" is an invalid path.
//
// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
// on the `object` handle, indicating the type of object opened.
//
// If an unknown value is sent for either flags or mode, the connection should
// be closed.
//
// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
// the `object` channel which will be connected to the opened entity.
//
// Rights are never increased. When you open a nested entity within a directory, you may only
// request the same rights as what the directory connection already has, or a subset of those.
// Exceeding those rights causes an access denied error to be transmitted in the
// `OnOpen` event if applicable, and the `object` connection closed.
//
// The caller must specify either one or more of the `OPEN_RIGHT_*` flags, or
// the `OPEN_FLAG_NODE_REFERENCE` flag.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Open Open(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object);
// Detaches an object from this directory object.
//
// The underlying object may or may not be deleted after this method
// completes: although the link will be removed from the containing directory,
// objects with multiple references (such as files which are still open)
// will not actually be destroyed until all references are removed.
//
// If a directory is unlinked while it still has an open reference,
// it must become read-only, preventing new entries from being created
// until all references close and the directory is destroyed.
//
// `path` identifies the file which should be detached.
// If `path` contains multiple segments, separated by "/" characters,
// then the directory is traversed, one segment at a time, relative to the
// originally accessed Directory.
//
// Returns:
// `ZX_ERR_ACCESS_DENIED` if the connection (or the underlying filesystem) does not
// allow writable access.
// `ZX_ERR_INVALID_ARGS` if `path` contains ".." segments.
// `ZX_ERR_NOT_EMPTY` if `path` refers to a non-empty directory.
// `ZX_ERR_UNAVAILABLE` if `path` refers to a mount point, containing a remote channel.
// `ZX_ERR_UNAVAILABLE` if `path` is ".".
//
// Other errors may be returned for filesystem-specific reasons.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 24 bytes of response buffer on the stack. Request is heap-allocated.
static ResultOf::Unlink Unlink(::zx::unowned_channel _client_end, ::fidl::StringView path);
// Detaches an object from this directory object.
//
// The underlying object may or may not be deleted after this method
// completes: although the link will be removed from the containing directory,
// objects with multiple references (such as files which are still open)
// will not actually be destroyed until all references are removed.
//
// If a directory is unlinked while it still has an open reference,
// it must become read-only, preventing new entries from being created
// until all references close and the directory is destroyed.
//
// `path` identifies the file which should be detached.
// If `path` contains multiple segments, separated by "/" characters,
// then the directory is traversed, one segment at a time, relative to the
// originally accessed Directory.
//
// Returns:
// `ZX_ERR_ACCESS_DENIED` if the connection (or the underlying filesystem) does not
// allow writable access.
// `ZX_ERR_INVALID_ARGS` if `path` contains ".." segments.
// `ZX_ERR_NOT_EMPTY` if `path` refers to a non-empty directory.
// `ZX_ERR_UNAVAILABLE` if `path` refers to a mount point, containing a remote channel.
// `ZX_ERR_UNAVAILABLE` if `path` is ".".
//
// Other errors may be returned for filesystem-specific reasons.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Unlink Unlink(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::StringView path, ::fidl::BytePart _response_buffer);
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// ```
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name in bytes.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
// ```
//
// This method does not require any rights, since one could always probe for
// directory contents by triggering name conflicts during file creation.
// Allocates 24 bytes of request buffer on the stack. Response is heap-allocated.
static ResultOf::ReadDirents ReadDirents(::zx::unowned_channel _client_end, uint64_t max_bytes);
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// ```
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name in bytes.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
// ```
//
// This method does not require any rights, since one could always probe for
// directory contents by triggering name conflicts during file creation.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::ReadDirents ReadDirents(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint64_t max_bytes, ::fidl::BytePart _response_buffer);
// Resets the directory seek offset.
//
// This method does not require any rights, similar to ReadDirents.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Rewind Rewind(::zx::unowned_channel _client_end);
// Resets the directory seek offset.
//
// This method does not require any rights, similar to ReadDirents.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Rewind Rewind(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Acquires a token to a Directory which can be used to identify
// access to it at a later point in time.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::GetToken GetToken(::zx::unowned_channel _client_end);
// Acquires a token to a Directory which can be used to identify
// access to it at a later point in time.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::GetToken GetToken(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
// Renames an object named src to the name dst, in a directory represented by token.
//
// `src/dst` must be resolved object names. Including "/" in any position
// other than the end of the string will return `ZX_ERR_INVALID_ARGS`.
// Returning "/" at the end of either string implies that it must be a
// directory, or else `ZX_ERR_NOT_DIR` should be returned.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 24 bytes of response buffer on the stack. Request is heap-allocated.
static ResultOf::Rename Rename(::zx::unowned_channel _client_end, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst);
// Renames an object named src to the name dst, in a directory represented by token.
//
// `src/dst` must be resolved object names. Including "/" in any position
// other than the end of the string will return `ZX_ERR_INVALID_ARGS`.
// Returning "/" at the end of either string implies that it must be a
// directory, or else `ZX_ERR_NOT_DIR` should be returned.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Rename Rename(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, ::fidl::BytePart _response_buffer);
// Creates a link to an object named src by the name dst, within a directory represented by
// token.
//
// `src` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// `dst` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Allocates 24 bytes of response buffer on the stack. Request is heap-allocated.
static ResultOf::Link Link(::zx::unowned_channel _client_end, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst);
// Creates a link to an object named src by the name dst, within a directory represented by
// token.
//
// `src` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// `dst` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Link Link(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, ::fidl::BytePart _response_buffer);
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The `watcher` handle will send messages of the form:
// ```
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// ```
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
//
// This method does not require any rights, similar to ReadDirents.
// Allocates 56 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Watch Watch(::zx::unowned_channel _client_end, uint32_t mask, uint32_t options, ::zx::channel watcher);
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The `watcher` handle will send messages of the form:
// ```
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// ```
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
//
// This method does not require any rights, similar to ReadDirents.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::Watch Watch(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, uint32_t mask, uint32_t options, ::zx::channel watcher, ::fidl::BytePart _response_buffer);
// Handle all possible events defined in this protocol.
// Blocks to consume exactly one message from the channel, then call the corresponding handler
// defined in |EventHandlers|. The return status of the handler function is folded with any
// transport-level errors and returned.
static zx_status_t HandleEvents(::zx::unowned_channel client_end, EventHandlers handlers);
};
// Messages are encoded and decoded in-place when these methods are used.
// Additionally, requests must be already laid-out according to the FIDL wire-format.
class InPlace final {
InPlace() = delete;
public:
// Create another connection to the same remote object.
//
// `flags` may be any of:
//
// - `OPEN_RIGHT_*`
// - `OPEN_FLAG_APPEND`
// - `OPEN_FLAG_NO_REMOTE`
// - `OPEN_FLAG_DESCRIBE`
// - `CLONE_FLAG_SAME_RIGHTS`
//
// All other flags are ignored.
//
// The `OPEN_RIGHT_*` bits in `flags` request corresponding rights over the resulting
// cloned object.
// The cloned object must have rights less than or equal to the original object.
// Alternatively, pass `CLONE_FLAG_SAME_RIGHTS` to inherit the rights on the source connection.
// It is invalid to pass any of the `OPEN_RIGHT_*` flags together with
// `CLONE_FLAG_SAME_RIGHTS`.
static ::fidl::internal::StatusAndError Clone(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<CloneRequest> params);
// Terminates connection with object.
//
// This method does not require any rights.
static ::fidl::DecodeResult<CloseResponse> Close(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Returns extra information about the type of the object.
// If the `Describe` operation fails, the connection is closed.
//
// This method does not require any rights.
static ::fidl::DecodeResult<DescribeResponse> Describe(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Synchronizes updates to the node to the underlying media, if it exists.
//
// This method does not require any rights.
static ::fidl::DecodeResult<SyncResponse> Sync(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Acquires information about the node.
//
// This method does not require any rights.
static ::fidl::DecodeResult<GetAttrResponse> GetAttr(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Updates information about the node.
// `flags` may be any of `NODE_ATTRIBUTE_FLAG_*`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
static ::fidl::DecodeResult<SetAttrResponse> SetAttr(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<SetAttrRequest> params, ::fidl::BytePart response_buffer);
// Acquires the `Directory.Open` rights and flags used to access this file.
//
// This method does not require any rights.
// This method has the same functionality as GetFlags for File and is
// meant as an in-progress replacement.
static ::fidl::DecodeResult<NodeGetFlagsResponse> NodeGetFlags(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Changes the `Directory.Open` flags used to access the file.
// Supported flags which can be turned on / off:
// - `OPEN_FLAG_APPEND`
//
// This method does not require any rights.
// This method has the same functionality as SetFlags for File and is
// meant as an in-progress replacement.
static ::fidl::DecodeResult<NodeSetFlagsResponse> NodeSetFlags(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<NodeSetFlagsRequest> params, ::fidl::BytePart response_buffer);
// Opens a new object relative to this directory object.
//
// `path` may contain multiple segments, separated by "/" characters,
// and should never be empty; i.e., "" is an invalid path.
//
// `flags` may be any of the `OPEN_FLAG_*` and `OPEN_RIGHT_*` values, bitwise ORed together.
// The `OPEN_FLAG_DESCRIBE` flag may cause an `OnOpen` event to be transmitted
// on the `object` handle, indicating the type of object opened.
//
// If an unknown value is sent for either flags or mode, the connection should
// be closed.
//
// `OPEN_RIGHT_*` flags provided in `flags` will restrict access rights on
// the `object` channel which will be connected to the opened entity.
//
// Rights are never increased. When you open a nested entity within a directory, you may only
// request the same rights as what the directory connection already has, or a subset of those.
// Exceeding those rights causes an access denied error to be transmitted in the
// `OnOpen` event if applicable, and the `object` connection closed.
//
// The caller must specify either one or more of the `OPEN_RIGHT_*` flags, or
// the `OPEN_FLAG_NODE_REFERENCE` flag.
static ::fidl::internal::StatusAndError Open(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<OpenRequest> params);
// Detaches an object from this directory object.
//
// The underlying object may or may not be deleted after this method
// completes: although the link will be removed from the containing directory,
// objects with multiple references (such as files which are still open)
// will not actually be destroyed until all references are removed.
//
// If a directory is unlinked while it still has an open reference,
// it must become read-only, preventing new entries from being created
// until all references close and the directory is destroyed.
//
// `path` identifies the file which should be detached.
// If `path` contains multiple segments, separated by "/" characters,
// then the directory is traversed, one segment at a time, relative to the
// originally accessed Directory.
//
// Returns:
// `ZX_ERR_ACCESS_DENIED` if the connection (or the underlying filesystem) does not
// allow writable access.
// `ZX_ERR_INVALID_ARGS` if `path` contains ".." segments.
// `ZX_ERR_NOT_EMPTY` if `path` refers to a non-empty directory.
// `ZX_ERR_UNAVAILABLE` if `path` refers to a mount point, containing a remote channel.
// `ZX_ERR_UNAVAILABLE` if `path` is ".".
//
// Other errors may be returned for filesystem-specific reasons.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
static ::fidl::DecodeResult<UnlinkResponse> Unlink(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<UnlinkRequest> params, ::fidl::BytePart response_buffer);
// Reads a collection of variably sized dirents into a buffer.
// The number of dirents in a directory may be very large: akin to
// calling read multiple times on a file, directories have a seek
// offset which is updated on subsequent calls to ReadDirents.
//
// These dirents are of the form:
// ```
// struct dirent {
// // Describes the inode of the entry.
// uint64 ino;
// // Describes the length of the dirent name in bytes.
// uint8 size;
// // Describes the type of the entry. Aligned with the
// // POSIX d_type values. Use `DIRENT_TYPE_*` constants.
// uint8 type;
// // Unterminated name of entry.
// char name[0];
// }
// ```
//
// This method does not require any rights, since one could always probe for
// directory contents by triggering name conflicts during file creation.
static ::fidl::DecodeResult<ReadDirentsResponse> ReadDirents(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<ReadDirentsRequest> params, ::fidl::BytePart response_buffer);
// Resets the directory seek offset.
//
// This method does not require any rights, similar to ReadDirents.
static ::fidl::DecodeResult<RewindResponse> Rewind(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Acquires a token to a Directory which can be used to identify
// access to it at a later point in time.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
static ::fidl::DecodeResult<GetTokenResponse> GetToken(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
// Renames an object named src to the name dst, in a directory represented by token.
//
// `src/dst` must be resolved object names. Including "/" in any position
// other than the end of the string will return `ZX_ERR_INVALID_ARGS`.
// Returning "/" at the end of either string implies that it must be a
// directory, or else `ZX_ERR_NOT_DIR` should be returned.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
static ::fidl::DecodeResult<RenameResponse> Rename(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<RenameRequest> params, ::fidl::BytePart response_buffer);
// Creates a link to an object named src by the name dst, within a directory represented by
// token.
//
// `src` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// `dst` must be a resolved object name. Including "/" in the string will
// return `ZX_ERR_INVALID_ARGS`.
//
// This method requires following rights: `OPEN_RIGHT_WRITABLE`.
static ::fidl::DecodeResult<LinkResponse> Link(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<LinkRequest> params, ::fidl::BytePart response_buffer);
// Watches a directory, receiving events of added messages on the
// watcher request channel.
//
// The `watcher` handle will send messages of the form:
// ```
// struct {
// uint8 event;
// uint8 len;
// char name[];
// };
// ```
// Where names are NOT null-terminated.
//
// This API is unstable; in the future, watcher will be a `DirectoryWatcher` client.
//
// Mask specifies a bitmask of events to observe.
// Options must be zero; it is reserved.
//
// This method does not require any rights, similar to ReadDirents.
static ::fidl::DecodeResult<WatchResponse> Watch(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<WatchRequest> params, ::fidl::BytePart response_buffer);
};
// Pure-virtual interface to be implemented by a server.
class Interface {
public:
Interface() = default;
virtual ~Interface() = default;
using _Outer = Filesystems;
using _Base = ::fidl::CompleterBase;
using CloneCompleter = ::fidl::Completer<>;
virtual void Clone(uint32_t flags, ::zx::channel object, CloneCompleter::Sync _completer) = 0;
class CloseCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<CloseResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using CloseCompleter = ::fidl::Completer<CloseCompleterBase>;
virtual void Close(CloseCompleter::Sync _completer) = 0;
class DescribeCompleterBase : public _Base {
public:
void Reply(::llcpp::fuchsia::io::NodeInfo info);
void Reply(::fidl::BytePart _buffer, ::llcpp::fuchsia::io::NodeInfo info);
void Reply(::fidl::DecodedMessage<DescribeResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using DescribeCompleter = ::fidl::Completer<DescribeCompleterBase>;
virtual void Describe(DescribeCompleter::Sync _completer) = 0;
class SyncCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<SyncResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using SyncCompleter = ::fidl::Completer<SyncCompleterBase>;
virtual void Sync(SyncCompleter::Sync _completer) = 0;
class GetAttrCompleterBase : public _Base {
public:
void Reply(int32_t s, ::llcpp::fuchsia::io::NodeAttributes attributes);
void Reply(::fidl::BytePart _buffer, int32_t s, ::llcpp::fuchsia::io::NodeAttributes attributes);
void Reply(::fidl::DecodedMessage<GetAttrResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using GetAttrCompleter = ::fidl::Completer<GetAttrCompleterBase>;
virtual void GetAttr(GetAttrCompleter::Sync _completer) = 0;
class SetAttrCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<SetAttrResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using SetAttrCompleter = ::fidl::Completer<SetAttrCompleterBase>;
virtual void SetAttr(uint32_t flags, ::llcpp::fuchsia::io::NodeAttributes attributes, SetAttrCompleter::Sync _completer) = 0;
class NodeGetFlagsCompleterBase : public _Base {
public:
void Reply(int32_t s, uint32_t flags);
void Reply(::fidl::BytePart _buffer, int32_t s, uint32_t flags);
void Reply(::fidl::DecodedMessage<NodeGetFlagsResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using NodeGetFlagsCompleter = ::fidl::Completer<NodeGetFlagsCompleterBase>;
virtual void NodeGetFlags(NodeGetFlagsCompleter::Sync _completer) { _completer.Close(ZX_ERR_NOT_SUPPORTED); }
class NodeSetFlagsCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<NodeSetFlagsResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using NodeSetFlagsCompleter = ::fidl::Completer<NodeSetFlagsCompleterBase>;
virtual void NodeSetFlags(uint32_t flags, NodeSetFlagsCompleter::Sync _completer) { _completer.Close(ZX_ERR_NOT_SUPPORTED); }
using OpenCompleter = ::fidl::Completer<>;
virtual void Open(uint32_t flags, uint32_t mode, ::fidl::StringView path, ::zx::channel object, OpenCompleter::Sync _completer) = 0;
class UnlinkCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<UnlinkResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using UnlinkCompleter = ::fidl::Completer<UnlinkCompleterBase>;
virtual void Unlink(::fidl::StringView path, UnlinkCompleter::Sync _completer) = 0;
class ReadDirentsCompleterBase : public _Base {
public:
void Reply(int32_t s, ::fidl::VectorView<uint8_t> dirents);
void Reply(::fidl::BytePart _buffer, int32_t s, ::fidl::VectorView<uint8_t> dirents);
void Reply(::fidl::DecodedMessage<ReadDirentsResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using ReadDirentsCompleter = ::fidl::Completer<ReadDirentsCompleterBase>;
virtual void ReadDirents(uint64_t max_bytes, ReadDirentsCompleter::Sync _completer) = 0;
class RewindCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<RewindResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using RewindCompleter = ::fidl::Completer<RewindCompleterBase>;
virtual void Rewind(RewindCompleter::Sync _completer) = 0;
class GetTokenCompleterBase : public _Base {
public:
void Reply(int32_t s, ::zx::handle token);
void Reply(::fidl::BytePart _buffer, int32_t s, ::zx::handle token);
void Reply(::fidl::DecodedMessage<GetTokenResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using GetTokenCompleter = ::fidl::Completer<GetTokenCompleterBase>;
virtual void GetToken(GetTokenCompleter::Sync _completer) = 0;
class RenameCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<RenameResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using RenameCompleter = ::fidl::Completer<RenameCompleterBase>;
virtual void Rename(::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, RenameCompleter::Sync _completer) = 0;
class LinkCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<LinkResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using LinkCompleter = ::fidl::Completer<LinkCompleterBase>;
virtual void Link(::fidl::StringView src, ::zx::handle dst_parent_token, ::fidl::StringView dst, LinkCompleter::Sync _completer) = 0;
class WatchCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<WatchResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using WatchCompleter = ::fidl::Completer<WatchCompleterBase>;
virtual void Watch(uint32_t mask, uint32_t options, ::zx::channel watcher, WatchCompleter::Sync _completer) = 0;
};
// Attempts to dispatch the incoming message to a handler function in the server implementation.
// If there is no matching handler, it returns false, leaving the message and transaction intact.
// In all other cases, it consumes the message and returns true.
// It is possible to chain multiple TryDispatch functions in this manner.
static bool TryDispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
// Dispatches the incoming message to one of the handlers functions in the interface.
// If there is no matching handler, it closes all the handles in |msg| and closes the channel with
// a |ZX_ERR_NOT_SUPPORTED| epitaph, before returning false. The message should then be discarded.
static bool Dispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
// Same as |Dispatch|, but takes a |void*| instead of |Interface*|. Only used with |fidl::Bind|
// to reduce template expansion.
// Do not call this method manually. Use |Dispatch| instead.
static bool TypeErasedDispatch(void* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
return Dispatch(static_cast<Interface*>(impl), msg, txn);
}
// An event produced eagerly by a FIDL server if requested by `OPEN_FLAG_DESCRIBE`.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is `ZX_OK`, `info` contains descriptive information about the object
// (the same as would be returned by `Describe`).
static zx_status_t SendOnOpenEvent(::zx::unowned_channel _chan, int32_t s, ::llcpp::fuchsia::io::NodeInfo info);
// An event produced eagerly by a FIDL server if requested by `OPEN_FLAG_DESCRIBE`.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is `ZX_OK`, `info` contains descriptive information about the object
// (the same as would be returned by `Describe`).
// Caller provides the backing storage for FIDL message via response buffers.
static zx_status_t SendOnOpenEvent(::zx::unowned_channel _chan, ::fidl::BytePart _buffer, int32_t s, ::llcpp::fuchsia::io::NodeInfo info);
// An event produced eagerly by a FIDL server if requested by `OPEN_FLAG_DESCRIBE`.
//
// Indicates the success or failure of the open operation, and optionally describes the
// object. If the status is `ZX_OK`, `info` contains descriptive information about the object
// (the same as would be returned by `Describe`).
// Messages are encoded in-place.
static zx_status_t SendOnOpenEvent(::zx::unowned_channel _chan, ::fidl::DecodedMessage<OnOpenResponse> params);
// Helper functions to fill in the transaction header in a |DecodedMessage<TransactionalMessage>|.
class SetTransactionHeaderFor final {
SetTransactionHeaderFor() = delete;
public:
static void CloneRequest(const ::fidl::DecodedMessage<Filesystems::CloneRequest>& _msg);
static void CloseRequest(const ::fidl::DecodedMessage<Filesystems::CloseRequest>& _msg);
static void CloseResponse(const ::fidl::DecodedMessage<Filesystems::CloseResponse>& _msg);
static void DescribeRequest(const ::fidl::DecodedMessage<Filesystems::DescribeRequest>& _msg);
static void DescribeResponse(const ::fidl::DecodedMessage<Filesystems::DescribeResponse>& _msg);
static void OnOpenResponse(const ::fidl::DecodedMessage<Filesystems::OnOpenResponse>& _msg);
static void SyncRequest(const ::fidl::DecodedMessage<Filesystems::SyncRequest>& _msg);
static void SyncResponse(const ::fidl::DecodedMessage<Filesystems::SyncResponse>& _msg);
static void GetAttrRequest(const ::fidl::DecodedMessage<Filesystems::GetAttrRequest>& _msg);
static void GetAttrResponse(const ::fidl::DecodedMessage<Filesystems::GetAttrResponse>& _msg);
static void SetAttrRequest(const ::fidl::DecodedMessage<Filesystems::SetAttrRequest>& _msg);
static void SetAttrResponse(const ::fidl::DecodedMessage<Filesystems::SetAttrResponse>& _msg);
static void NodeGetFlagsRequest(const ::fidl::DecodedMessage<Filesystems::NodeGetFlagsRequest>& _msg);
static void NodeGetFlagsResponse(const ::fidl::DecodedMessage<Filesystems::NodeGetFlagsResponse>& _msg);
static void NodeSetFlagsRequest(const ::fidl::DecodedMessage<Filesystems::NodeSetFlagsRequest>& _msg);
static void NodeSetFlagsResponse(const ::fidl::DecodedMessage<Filesystems::NodeSetFlagsResponse>& _msg);
static void OpenRequest(const ::fidl::DecodedMessage<Filesystems::OpenRequest>& _msg);
static void UnlinkRequest(const ::fidl::DecodedMessage<Filesystems::UnlinkRequest>& _msg);
static void UnlinkResponse(const ::fidl::DecodedMessage<Filesystems::UnlinkResponse>& _msg);
static void ReadDirentsRequest(const ::fidl::DecodedMessage<Filesystems::ReadDirentsRequest>& _msg);
static void ReadDirentsResponse(const ::fidl::DecodedMessage<Filesystems::ReadDirentsResponse>& _msg);
static void RewindRequest(const ::fidl::DecodedMessage<Filesystems::RewindRequest>& _msg);
static void RewindResponse(const ::fidl::DecodedMessage<Filesystems::RewindResponse>& _msg);
static void GetTokenRequest(const ::fidl::DecodedMessage<Filesystems::GetTokenRequest>& _msg);
static void GetTokenResponse(const ::fidl::DecodedMessage<Filesystems::GetTokenResponse>& _msg);
static void RenameRequest(const ::fidl::DecodedMessage<Filesystems::RenameRequest>& _msg);
static void RenameResponse(const ::fidl::DecodedMessage<Filesystems::RenameResponse>& _msg);
static void LinkRequest(const ::fidl::DecodedMessage<Filesystems::LinkRequest>& _msg);
static void LinkResponse(const ::fidl::DecodedMessage<Filesystems::LinkResponse>& _msg);
static void WatchRequest(const ::fidl::DecodedMessage<Filesystems::WatchRequest>& _msg);
static void WatchResponse(const ::fidl::DecodedMessage<Filesystems::WatchResponse>& _msg);
};
};
extern "C" const fidl_type_t v1_fuchsia_fshost_AdminShutdownRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_AdminShutdownResponseTable;
// Manages fshost lifecycle
class Admin final {
Admin() = delete;
public:
static constexpr char Name[] = "fuchsia.fshost.Admin";
using ShutdownResponse = ::fidl::AnyZeroArgMessage;
using ShutdownRequest = ::fidl::AnyZeroArgMessage;
// Collection of return types of FIDL calls in this interface.
class ResultOf final {
ResultOf() = delete;
private:
template <typename ResponseType>
class Shutdown_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
Shutdown_Impl(::zx::unowned_channel _client_end);
~Shutdown_Impl() = default;
Shutdown_Impl(Shutdown_Impl&& other) = default;
Shutdown_Impl& operator=(Shutdown_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
public:
using Shutdown = Shutdown_Impl<ShutdownResponse>;
};
// Collection of return types of FIDL calls in this interface,
// when the caller-allocate flavor or in-place call is used.
class UnownedResultOf final {
UnownedResultOf() = delete;
private:
template <typename ResponseType>
class Shutdown_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
Shutdown_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _response_buffer);
~Shutdown_Impl() = default;
Shutdown_Impl(Shutdown_Impl&& other) = default;
Shutdown_Impl& operator=(Shutdown_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
public:
using Shutdown = Shutdown_Impl<ShutdownResponse>;
};
class SyncClient final {
public:
explicit SyncClient(::zx::channel channel) : channel_(std::move(channel)) {}
~SyncClient() = default;
SyncClient(SyncClient&&) = default;
SyncClient& operator=(SyncClient&&) = default;
const ::zx::channel& channel() const { return channel_; }
::zx::channel* mutable_channel() { return &channel_; }
// Causes fshost to unmount all filesystems and exit. Fshost has
// successfully unmounted all filesystems when this function returns, and
// exits immediately after writing the response to this function.
// Allocates 32 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::Shutdown Shutdown();
private:
::zx::channel channel_;
};
// Methods to make a sync FIDL call directly on an unowned channel, avoiding setting up a client.
class Call final {
Call() = delete;
public:
// Causes fshost to unmount all filesystems and exit. Fshost has
// successfully unmounted all filesystems when this function returns, and
// exits immediately after writing the response to this function.
// Allocates 32 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::Shutdown Shutdown(::zx::unowned_channel _client_end);
};
// Messages are encoded and decoded in-place when these methods are used.
// Additionally, requests must be already laid-out according to the FIDL wire-format.
class InPlace final {
InPlace() = delete;
public:
// Causes fshost to unmount all filesystems and exit. Fshost has
// successfully unmounted all filesystems when this function returns, and
// exits immediately after writing the response to this function.
static ::fidl::DecodeResult<ShutdownResponse> Shutdown(::zx::unowned_channel _client_end, ::fidl::BytePart response_buffer);
};
// Pure-virtual interface to be implemented by a server.
class Interface {
public:
Interface() = default;
virtual ~Interface() = default;
using _Outer = Admin;
using _Base = ::fidl::CompleterBase;
class ShutdownCompleterBase : public _Base {
public:
void Reply();
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using ShutdownCompleter = ::fidl::Completer<ShutdownCompleterBase>;
virtual void Shutdown(ShutdownCompleter::Sync _completer) = 0;
};
// Attempts to dispatch the incoming message to a handler function in the server implementation.
// If there is no matching handler, it returns false, leaving the message and transaction intact.
// In all other cases, it consumes the message and returns true.
// It is possible to chain multiple TryDispatch functions in this manner.
static bool TryDispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
// Dispatches the incoming message to one of the handlers functions in the interface.
// If there is no matching handler, it closes all the handles in |msg| and closes the channel with
// a |ZX_ERR_NOT_SUPPORTED| epitaph, before returning false. The message should then be discarded.
static bool Dispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
// Same as |Dispatch|, but takes a |void*| instead of |Interface*|. Only used with |fidl::Bind|
// to reduce template expansion.
// Do not call this method manually. Use |Dispatch| instead.
static bool TypeErasedDispatch(void* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
return Dispatch(static_cast<Interface*>(impl), msg, txn);
}
// Helper functions to fill in the transaction header in a |DecodedMessage<TransactionalMessage>|.
class SetTransactionHeaderFor final {
SetTransactionHeaderFor() = delete;
public:
static void ShutdownRequest(const ::fidl::DecodedMessage<Admin::ShutdownRequest>& _msg);
static void ShutdownResponse(const ::fidl::DecodedMessage<Admin::ShutdownResponse>& _msg);
};
};
extern "C" const fidl_type_t v1_fuchsia_fshost_RegistryRegisterFilesystemRequestTable;
extern "C" const fidl_type_t v1_fuchsia_fshost_RegistryRegisterFilesystemResponseTable;
// Manages filesystems which wish to be globally exposed under the filesystem host.
class Registry final {
Registry() = delete;
public:
static constexpr char Name[] = "fuchsia.fshost.Registry";
struct RegisterFilesystemResponse final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
int32_t s;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_RegistryRegisterFilesystemResponseTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kResponse;
};
struct RegisterFilesystemRequest final {
FIDL_ALIGNDECL
fidl_message_header_t _hdr;
::zx::channel public_export;
static constexpr const fidl_type_t* Type = &v1_fuchsia_fshost_RegistryRegisterFilesystemRequestTable;
static constexpr uint32_t MaxNumHandles = 1;
static constexpr uint32_t PrimarySize = 24;
static constexpr uint32_t MaxOutOfLine = 0;
static constexpr uint32_t AltPrimarySize = 24;
static constexpr uint32_t AltMaxOutOfLine = 0;
static constexpr bool HasFlexibleEnvelope = false;
static constexpr bool HasPointer = false;
static constexpr bool ContainsUnion = false;
static constexpr ::fidl::internal::TransactionalMessageKind MessageKind =
::fidl::internal::TransactionalMessageKind::kRequest;
using ResponseType = RegisterFilesystemResponse;
};
// Collection of return types of FIDL calls in this interface.
class ResultOf final {
ResultOf() = delete;
private:
template <typename ResponseType>
class RegisterFilesystem_Impl final : private ::fidl::internal::OwnedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::OwnedSyncCallBase<ResponseType>;
public:
RegisterFilesystem_Impl(::zx::unowned_channel _client_end, ::zx::channel public_export);
~RegisterFilesystem_Impl() = default;
RegisterFilesystem_Impl(RegisterFilesystem_Impl&& other) = default;
RegisterFilesystem_Impl& operator=(RegisterFilesystem_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
public:
using RegisterFilesystem = RegisterFilesystem_Impl<RegisterFilesystemResponse>;
};
// Collection of return types of FIDL calls in this interface,
// when the caller-allocate flavor or in-place call is used.
class UnownedResultOf final {
UnownedResultOf() = delete;
private:
template <typename ResponseType>
class RegisterFilesystem_Impl final : private ::fidl::internal::UnownedSyncCallBase<ResponseType> {
using Super = ::fidl::internal::UnownedSyncCallBase<ResponseType>;
public:
RegisterFilesystem_Impl(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::zx::channel public_export, ::fidl::BytePart _response_buffer);
~RegisterFilesystem_Impl() = default;
RegisterFilesystem_Impl(RegisterFilesystem_Impl&& other) = default;
RegisterFilesystem_Impl& operator=(RegisterFilesystem_Impl&& other) = default;
using Super::status;
using Super::error;
using Super::ok;
using Super::Unwrap;
using Super::value;
using Super::operator->;
using Super::operator*;
};
public:
using RegisterFilesystem = RegisterFilesystem_Impl<RegisterFilesystemResponse>;
};
class SyncClient final {
public:
explicit SyncClient(::zx::channel channel) : channel_(std::move(channel)) {}
~SyncClient() = default;
SyncClient(SyncClient&&) = default;
SyncClient& operator=(SyncClient&&) = default;
const ::zx::channel& channel() const { return channel_; }
::zx::channel* mutable_channel() { return &channel_; }
// Registers the output directory of a filesystem. These filesystems are
// exported from the fuchsia.fshost.Filesystems service, where they are
// be identified by an instance number (of the form "000", "001", etc).
//
// This directory is automatically de-registered from fuchsia.fshost.Filesystems
// if the server end of the connection is closed.
// Allocates 48 bytes of message buffer on the stack. No heap allocation necessary.
ResultOf::RegisterFilesystem RegisterFilesystem(::zx::channel public_export);
// Registers the output directory of a filesystem. These filesystems are
// exported from the fuchsia.fshost.Filesystems service, where they are
// be identified by an instance number (of the form "000", "001", etc).
//
// This directory is automatically de-registered from fuchsia.fshost.Filesystems
// if the server end of the connection is closed.
// Caller provides the backing storage for FIDL message via request and response buffers.
UnownedResultOf::RegisterFilesystem RegisterFilesystem(::fidl::BytePart _request_buffer, ::zx::channel public_export, ::fidl::BytePart _response_buffer);
private:
::zx::channel channel_;
};
// Methods to make a sync FIDL call directly on an unowned channel, avoiding setting up a client.
class Call final {
Call() = delete;
public:
// Registers the output directory of a filesystem. These filesystems are
// exported from the fuchsia.fshost.Filesystems service, where they are
// be identified by an instance number (of the form "000", "001", etc).
//
// This directory is automatically de-registered from fuchsia.fshost.Filesystems
// if the server end of the connection is closed.
// Allocates 48 bytes of message buffer on the stack. No heap allocation necessary.
static ResultOf::RegisterFilesystem RegisterFilesystem(::zx::unowned_channel _client_end, ::zx::channel public_export);
// Registers the output directory of a filesystem. These filesystems are
// exported from the fuchsia.fshost.Filesystems service, where they are
// be identified by an instance number (of the form "000", "001", etc).
//
// This directory is automatically de-registered from fuchsia.fshost.Filesystems
// if the server end of the connection is closed.
// Caller provides the backing storage for FIDL message via request and response buffers.
static UnownedResultOf::RegisterFilesystem RegisterFilesystem(::zx::unowned_channel _client_end, ::fidl::BytePart _request_buffer, ::zx::channel public_export, ::fidl::BytePart _response_buffer);
};
// Messages are encoded and decoded in-place when these methods are used.
// Additionally, requests must be already laid-out according to the FIDL wire-format.
class InPlace final {
InPlace() = delete;
public:
// Registers the output directory of a filesystem. These filesystems are
// exported from the fuchsia.fshost.Filesystems service, where they are
// be identified by an instance number (of the form "000", "001", etc).
//
// This directory is automatically de-registered from fuchsia.fshost.Filesystems
// if the server end of the connection is closed.
static ::fidl::DecodeResult<RegisterFilesystemResponse> RegisterFilesystem(::zx::unowned_channel _client_end, ::fidl::DecodedMessage<RegisterFilesystemRequest> params, ::fidl::BytePart response_buffer);
};
// Pure-virtual interface to be implemented by a server.
class Interface {
public:
Interface() = default;
virtual ~Interface() = default;
using _Outer = Registry;
using _Base = ::fidl::CompleterBase;
class RegisterFilesystemCompleterBase : public _Base {
public:
void Reply(int32_t s);
void Reply(::fidl::BytePart _buffer, int32_t s);
void Reply(::fidl::DecodedMessage<RegisterFilesystemResponse> params);
protected:
using ::fidl::CompleterBase::CompleterBase;
};
using RegisterFilesystemCompleter = ::fidl::Completer<RegisterFilesystemCompleterBase>;
virtual void RegisterFilesystem(::zx::channel public_export, RegisterFilesystemCompleter::Sync _completer) = 0;
};
// Attempts to dispatch the incoming message to a handler function in the server implementation.
// If there is no matching handler, it returns false, leaving the message and transaction intact.
// In all other cases, it consumes the message and returns true.
// It is possible to chain multiple TryDispatch functions in this manner.
static bool TryDispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
// Dispatches the incoming message to one of the handlers functions in the interface.
// If there is no matching handler, it closes all the handles in |msg| and closes the channel with
// a |ZX_ERR_NOT_SUPPORTED| epitaph, before returning false. The message should then be discarded.
static bool Dispatch(Interface* impl, fidl_msg_t* msg, ::fidl::Transaction* txn);
// Same as |Dispatch|, but takes a |void*| instead of |Interface*|. Only used with |fidl::Bind|
// to reduce template expansion.
// Do not call this method manually. Use |Dispatch| instead.
static bool TypeErasedDispatch(void* impl, fidl_msg_t* msg, ::fidl::Transaction* txn) {
return Dispatch(static_cast<Interface*>(impl), msg, txn);
}
// Helper functions to fill in the transaction header in a |DecodedMessage<TransactionalMessage>|.
class SetTransactionHeaderFor final {
SetTransactionHeaderFor() = delete;
public:
static void RegisterFilesystemRequest(const ::fidl::DecodedMessage<Registry::RegisterFilesystemRequest>& _msg);
static void RegisterFilesystemResponse(const ::fidl::DecodedMessage<Registry::RegisterFilesystemResponse>& _msg);
};
};
} // namespace fshost
} // namespace fuchsia
} // namespace llcpp
namespace fidl {
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::CloneRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::CloneRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::CloneRequest)
== ::llcpp::fuchsia::fshost::Filesystems::CloneRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::CloneRequest, flags) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::CloneRequest, object) == 20);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::CloseResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::CloseResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::CloseResponse)
== ::llcpp::fuchsia::fshost::Filesystems::CloseResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::CloseResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::DescribeResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::DescribeResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::DescribeResponse)
== ::llcpp::fuchsia::fshost::Filesystems::DescribeResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::DescribeResponse, info) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::OnOpenResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::OnOpenResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::OnOpenResponse)
== ::llcpp::fuchsia::fshost::Filesystems::OnOpenResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::OnOpenResponse, s) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::OnOpenResponse, info) == 24);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::SyncResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::SyncResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::SyncResponse)
== ::llcpp::fuchsia::fshost::Filesystems::SyncResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::SyncResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::GetAttrResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::GetAttrResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::GetAttrResponse)
== ::llcpp::fuchsia::fshost::Filesystems::GetAttrResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::GetAttrResponse, s) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::GetAttrResponse, attributes) == 24);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::SetAttrRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::SetAttrRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::SetAttrRequest)
== ::llcpp::fuchsia::fshost::Filesystems::SetAttrRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::SetAttrRequest, flags) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::SetAttrRequest, attributes) == 24);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::SetAttrResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::SetAttrResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::SetAttrResponse)
== ::llcpp::fuchsia::fshost::Filesystems::SetAttrResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::SetAttrResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::NodeGetFlagsResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::NodeGetFlagsResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::NodeGetFlagsResponse)
== ::llcpp::fuchsia::fshost::Filesystems::NodeGetFlagsResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::NodeGetFlagsResponse, s) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::NodeGetFlagsResponse, flags) == 20);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsRequest)
== ::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsRequest, flags) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsResponse)
== ::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::NodeSetFlagsResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::OpenRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::OpenRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::OpenRequest)
== ::llcpp::fuchsia::fshost::Filesystems::OpenRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::OpenRequest, flags) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::OpenRequest, mode) == 20);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::OpenRequest, path) == 24);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::OpenRequest, object) == 40);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::UnlinkRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::UnlinkRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::UnlinkRequest)
== ::llcpp::fuchsia::fshost::Filesystems::UnlinkRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::UnlinkRequest, path) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::UnlinkResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::UnlinkResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::UnlinkResponse)
== ::llcpp::fuchsia::fshost::Filesystems::UnlinkResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::UnlinkResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::ReadDirentsRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::ReadDirentsRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::ReadDirentsRequest)
== ::llcpp::fuchsia::fshost::Filesystems::ReadDirentsRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::ReadDirentsRequest, max_bytes) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::ReadDirentsResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::ReadDirentsResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::ReadDirentsResponse)
== ::llcpp::fuchsia::fshost::Filesystems::ReadDirentsResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::ReadDirentsResponse, s) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::ReadDirentsResponse, dirents) == 24);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::RewindResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::RewindResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::RewindResponse)
== ::llcpp::fuchsia::fshost::Filesystems::RewindResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::RewindResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::GetTokenResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::GetTokenResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::GetTokenResponse)
== ::llcpp::fuchsia::fshost::Filesystems::GetTokenResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::GetTokenResponse, s) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::GetTokenResponse, token) == 20);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::RenameRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::RenameRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::RenameRequest)
== ::llcpp::fuchsia::fshost::Filesystems::RenameRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::RenameRequest, src) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::RenameRequest, dst_parent_token) == 32);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::RenameRequest, dst) == 40);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::RenameResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::RenameResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::RenameResponse)
== ::llcpp::fuchsia::fshost::Filesystems::RenameResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::RenameResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::LinkRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::LinkRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::LinkRequest)
== ::llcpp::fuchsia::fshost::Filesystems::LinkRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::LinkRequest, src) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::LinkRequest, dst_parent_token) == 32);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::LinkRequest, dst) == 40);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::LinkResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::LinkResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::LinkResponse)
== ::llcpp::fuchsia::fshost::Filesystems::LinkResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::LinkResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::WatchRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::WatchRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::WatchRequest)
== ::llcpp::fuchsia::fshost::Filesystems::WatchRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::WatchRequest, mask) == 16);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::WatchRequest, options) == 20);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::WatchRequest, watcher) == 24);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Filesystems::WatchResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Filesystems::WatchResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Filesystems::WatchResponse)
== ::llcpp::fuchsia::fshost::Filesystems::WatchResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Filesystems::WatchResponse, s) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Registry::RegisterFilesystemRequest> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Registry::RegisterFilesystemRequest> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Registry::RegisterFilesystemRequest)
== ::llcpp::fuchsia::fshost::Registry::RegisterFilesystemRequest::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Registry::RegisterFilesystemRequest, public_export) == 16);
template <>
struct IsFidlType<::llcpp::fuchsia::fshost::Registry::RegisterFilesystemResponse> : public std::true_type {};
template <>
struct IsFidlMessage<::llcpp::fuchsia::fshost::Registry::RegisterFilesystemResponse> : public std::true_type {};
static_assert(sizeof(::llcpp::fuchsia::fshost::Registry::RegisterFilesystemResponse)
== ::llcpp::fuchsia::fshost::Registry::RegisterFilesystemResponse::PrimarySize);
static_assert(offsetof(::llcpp::fuchsia::fshost::Registry::RegisterFilesystemResponse, s) == 16);
} // namespace fidl