pub struct DataSink;Expand description
The type corresponding to the DataSink protocol. Protocol for reading and writing boot partitions.
A note on DataSink.Flush() (and BootManager.Flush() coming after):
Some platforms may implement the Flush() fidl interface of DataSink/BootManager. For these platforms, the update of some system images and A/B configuration is not persisted to storage immediately and only buffered internally when the write fidl interfaces return. The data is guaranteed to be persisted only after the Flush() interfaces are called.
If not implemented, Flush() is no-op and system images and A/B configuration will be persisted to storage immediately after the write fidl interfaces return.
For all platforms, it is guaranteed that if DataSink.Flush() is implemented, BootManager.Flush() is implemented as well. Therefore, in the context of system update, both of the following update sequences are safe in the sense that, new A/B configuration will not be persisted to storage before new system images. DataSink.Write… –> DataSink.Flush() –> BootManager.Set… –> BootManager.Flush() DataSink.Write… –> BootManager.Set… –> DataSink.Flush() –> BootManager.Flush()
Trait Implementations§
Source§impl<___H, ___T> DispatchClientMessage<___H, ___T> for DataSinkwhere
___H: DataSinkClientHandler<___T> + Send,
___T: Transport,
impl<___H, ___T> DispatchClientMessage<___H, ___T> for DataSinkwhere
___H: DataSinkClientHandler<___T> + Send,
___T: Transport,
Source§impl<___H, ___T> DispatchLocalClientMessage<___H, ___T> for DataSinkwhere
___H: DataSinkLocalClientHandler<___T>,
___T: Transport,
impl<___H, ___T> DispatchLocalClientMessage<___H, ___T> for DataSinkwhere
___H: DataSinkLocalClientHandler<___T>,
___T: Transport,
Source§impl<___H, ___T> DispatchLocalServerMessage<___H, ___T> for DataSinkwhere
___H: DataSinkLocalServerHandler<___T>,
___T: Transport,
for<'de> DataSinkReadAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkReadFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteOpaqueVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteSparseVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
impl<___H, ___T> DispatchLocalServerMessage<___H, ___T> for DataSinkwhere
___H: DataSinkLocalServerHandler<___T>,
___T: Transport,
for<'de> DataSinkReadAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkReadFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteOpaqueVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteSparseVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
Source§impl<___H, ___T> DispatchServerMessage<___H, ___T> for DataSinkwhere
___H: DataSinkServerHandler<___T> + Send,
___T: Transport,
for<'de> DataSinkReadAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkReadFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteOpaqueVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteSparseVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
impl<___H, ___T> DispatchServerMessage<___H, ___T> for DataSinkwhere
___H: DataSinkServerHandler<___T> + Send,
___T: Transport,
for<'de> DataSinkReadAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteAssetRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkReadFirmwareRequest<'de>: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteOpaqueVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
for<'de> DataSinkWriteSparseVolumeRequest: Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,
impl StructuralPartialEq for DataSink
Auto Trait Implementations§
impl Freeze for DataSink
impl RefUnwindSafe for DataSink
impl Send for DataSink
impl Sync for DataSink
impl Unpin for DataSink
impl UnsafeUnpin for DataSink
impl UnwindSafe for DataSink
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]