template <>
class WireServer
Defined at line 2502 of file fidling/gen/sdk/fidl/fuchsia.storage.block/fuchsia.storage.block/cpp/fidl/fuchsia.storage.block/cpp/wire_messaging.h
Pure-virtual interface to be implemented by a server.
This interface uses typed channels (i.e. |::fidl::ClientEnd
<
::fuchsia_storage_block::VolumeManager>|
and |::fidl::ServerEnd
<
::fuchsia_storage_block::VolumeManager>|).
Public Methods
void AllocatePartition (::fuchsia_storage_block::wire::VolumeManagerAllocatePartitionRequest * request, AllocatePartitionCompleter::Sync & completer)
Allocates a virtual partition with the requested features.
`slice_count` is the number of slices initially allocated to the partition, at
offset zero. The number of slices allocated to a new partition must be at least one.
`type` and `value` indicate type and instance GUIDs for the partition, respectively.
`name` indicates the name of the new partition.
void GetInfo (GetInfoCompleter::Sync & completer)
Gets the VolumeManagerInfo describing this instance of the `VolumeManager`.
**NOTE**: GetInfo() is used to synchronize child partition device visibility with devfs.
Implementations must only respond once all child partitions of `VolumeManager` have been
added to devfs, to guarantee clients can safely enumerate them.
See https://fxbug.dev/42077585 for more information.
void Activate (::fuchsia_storage_block::wire::VolumeManagerActivateRequest * request, ActivateCompleter::Sync & completer)
Atomically marks a vpartition (by instance GUID) as inactive, while finding
another partition (by instance GUID) and marking it as active.
If the "old" partition does not exist, the GUID is ignored.
If the "old" partition is the same as the "new" partition, the "old"
GUID is ignored.
If the "new" partition does not exist, `ZX_ERR_NOT_FOUND` is returned.
This function does not destroy the "old" partition, it just marks it as
inactive -- to reclaim that space, the "old" partition must be explicitly
destroyed. This destruction can also occur automatically when the FVM driver
is rebound (i.e., on reboot).
This function may be useful for A/B updates within the FVM,
since it will allow activating updated partitions.
void GetPartitionLimit (::fuchsia_storage_block::wire::VolumeManagerGetPartitionLimitRequest * request, GetPartitionLimitCompleter::Sync & completer)
Retrieves the allocation limit for the partition. A return value of 0 indicates that there
is no limit and the partition can be extended as long as there is available space on the
device.
The partition may be larger than this limit if a smaller limit was applied after the
partition had already grown to the current size.
Currently the partition limit is not persisted across reboots but this may change in the
future.
void SetPartitionLimit (::fuchsia_storage_block::wire::VolumeManagerSetPartitionLimitRequest * request, SetPartitionLimitCompleter::Sync & completer)
Sets the allocation limit for the partition. Partitions can not be extended beyond their
allocation limit. The partition limit will never shrink partitions so if this value is
less than the current partition size, it will keep the current size but prevent further
growth.
The allocation limits are on the VolumeManager API rather than on the partition because
they represent a higher capability level. These limits are designed to put guards on
users of the block device (and hence the Volume API).
Currently the partition limit is not persisted across reboots but this may change in the
future.
void SetPartitionName (::fuchsia_storage_block::wire::VolumeManagerSetPartitionNameRequest * request, SetPartitionNameCompleter::Sync & completer)
Renames the specified partition. Any existing devices that include the name of the partition
in their topological path might *not* reflect the name change until the next time that the
device is instantiated.
void WireServer ()
Defined at line 2505 of file fidling/gen/sdk/fidl/fuchsia.storage.block/fuchsia.storage.block/cpp/fidl/fuchsia.storage.block/cpp/wire_messaging.h
Handler bind_handler (async_dispatcher_t * dispatcher)
|bind_handler| returns a handler that binds incoming connections to this
server implementation.
The returned handler borrows the server instance.
The server must outlive the provided |dispatcher|. Only after
the dispatcher is shutdown will it be safe to destroy the servers.
The server should not be moved.
void ~WireServer ()
Defined at line 2506 of file fidling/gen/sdk/fidl/fuchsia.storage.block/fuchsia.storage.block/cpp/fidl/fuchsia.storage.block/cpp/wire_messaging.h