pub struct VmoFile { /* private fields */ }
Expand description
Implementation of a VMO-backed file in a virtual file system.
Implementations§
source§impl VmoFile
impl VmoFile
sourcepub fn new(
vmo: Vmo,
readable: bool,
writable: bool,
executable: bool,
) -> Arc<Self>
pub fn new( vmo: Vmo, readable: bool, writable: bool, executable: bool, ) -> Arc<Self>
Create a new VmoFile which is backed by an existing Vmo.
§Arguments
vmo
- Vmo backing this file object.readable
- Must betrue
, VmoFile needs to be readable.writable
- Must befalse
, VmoFile no longer supports writing.executable
- If true, allow connections with OpenFlags::RIGHT_EXECUTABLE.
sourcepub fn new_with_inode(
vmo: Vmo,
readable: bool,
writable: bool,
executable: bool,
inode: u64,
) -> Arc<Self>
pub fn new_with_inode( vmo: Vmo, readable: bool, writable: bool, executable: bool, inode: u64, ) -> Arc<Self>
Create a new VmoFile with the specified options and inode value.
§Arguments
vmo
- Vmo backing this file object.readable
- Must betrue
, VmoFile needs to be readable.writable
- Must befalse
, VmoFile no longer supports writing.executable
- If true, allow connections with OpenFlags::RIGHT_EXECUTABLE.inode
- Inode value to report when getting the VmoFile’s attributes.
Trait Implementations§
source§impl DirectoryEntry for VmoFile
impl DirectoryEntry for VmoFile
source§fn open_entry(self: Arc<Self>, request: OpenRequest<'_>) -> Result<(), Status>
fn open_entry(self: Arc<Self>, request: OpenRequest<'_>) -> Result<(), Status>
Opens this entry.
source§impl File for VmoFile
impl File for VmoFile
fn writable(&self) -> bool
fn executable(&self) -> bool
source§async fn open_file(&self, _options: &FileOptions) -> Result<(), Status>
async fn open_file(&self, _options: &FileOptions) -> Result<(), Status>
Called when the file is going to be accessed, typically by a new connection.
Flags is the same as the flags passed to
fidl_fuchsia_io.Node/Open
.
The following flags are handled by the connection and do not need to be handled inside
open(): Read moresource§async fn truncate(&self, _length: u64) -> Result<(), Status>
async fn truncate(&self, _length: u64) -> Result<(), Status>
Truncate the file to
length
.
If there are pending attributes to update (see update_attributes
), they should also be
flushed at this time. Otherwise, no attributes should be updated, other than size as needed.source§async fn get_backing_memory(&self, flags: VmoFlags) -> Result<Vmo, Status>
async fn get_backing_memory(&self, flags: VmoFlags) -> Result<Vmo, Status>
Get a VMO representing this file.
If not supported by the underlying filesystem, should return Err(NOT_SUPPORTED).
source§async fn get_size(&self) -> Result<u64, Status>
async fn get_size(&self) -> Result<u64, Status>
Get the size of this file.
This is used to calculate seek offset relative to the end.
source§async fn update_attributes(
&self,
_attributes: MutableNodeAttributes,
) -> Result<(), Status>
async fn update_attributes( &self, _attributes: MutableNodeAttributes, ) -> Result<(), Status>
Set the mutable attributes of this file based on the values in
attributes
. If the file
does not support updating all of the specified attributes, implementations should fail
with ZX_ERR_NOT_SUPPORTED
.source§async fn sync(&self, _mode: SyncMode) -> Result<(), Status>
async fn sync(&self, _mode: SyncMode) -> Result<(), Status>
Sync this file’s contents to the storage medium (probably disk).
This does not necessarily guarantee that the file will be completely written to disk once
the call returns. It merely guarantees that any changes to the file have been propagated
to the next layer in the storage stack.
source§fn list_extended_attributes(
&self,
) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Send
fn list_extended_attributes( &self, ) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Send
List this files extended attributes.
source§fn get_extended_attribute(
&self,
_name: Vec<u8>,
) -> impl Future<Output = Result<Vec<u8>, Status>> + Send
fn get_extended_attribute( &self, _name: Vec<u8>, ) -> impl Future<Output = Result<Vec<u8>, Status>> + Send
Get the value for an extended attribute.
source§fn set_extended_attribute(
&self,
_name: Vec<u8>,
_value: Vec<u8>,
_mode: SetExtendedAttributeMode,
) -> impl Future<Output = Result<(), Status>> + Send
fn set_extended_attribute( &self, _name: Vec<u8>, _value: Vec<u8>, _mode: SetExtendedAttributeMode, ) -> impl Future<Output = Result<(), Status>> + Send
Set the value for an extended attribute.
source§fn remove_extended_attribute(
&self,
_name: Vec<u8>,
) -> impl Future<Output = Result<(), Status>> + Send
fn remove_extended_attribute( &self, _name: Vec<u8>, ) -> impl Future<Output = Result<(), Status>> + Send
Remove the value for an extended attribute.
source§fn allocate(
&self,
_offset: u64,
_length: u64,
_mode: AllocateMode,
) -> impl Future<Output = Result<(), Status>> + Send
fn allocate( &self, _offset: u64, _length: u64, _mode: AllocateMode, ) -> impl Future<Output = Result<(), Status>> + Send
Preallocate disk space for this range.
source§fn enable_verity(
&self,
_options: VerificationOptions,
) -> impl Future<Output = Result<(), Status>> + Send
fn enable_verity( &self, _options: VerificationOptions, ) -> impl Future<Output = Result<(), Status>> + Send
Set the merkle tree and the descriptor for this file and mark the file as fsverity-enabled.
source§impl FileLike for VmoFile
impl FileLike for VmoFile
fn open( self: Arc<Self>, scope: ExecutionScope, options: FileOptions, object_request: ObjectRequestRef<'_>, ) -> Result<(), Status>
source§impl GetEntryInfo for VmoFile
impl GetEntryInfo for VmoFile
source§fn entry_info(&self) -> EntryInfo
fn entry_info(&self) -> EntryInfo
This method is used to populate ReadDirents() output.
source§impl Node for VmoFile
impl Node for VmoFile
source§async fn get_attributes(
&self,
requested_attributes: NodeAttributesQuery,
) -> Result<NodeAttributes2, Status>
async fn get_attributes( &self, requested_attributes: NodeAttributesQuery, ) -> Result<NodeAttributes2, Status>
Returns node attributes (io2).
source§fn will_open_as_node(&self) -> Result<(), Status>
fn will_open_as_node(&self) -> Result<(), Status>
Called when the node is about to be opened as the node protocol. Implementers can use this
to perform any initialization or reference counting. Errors here will result in the open
failing. By default, this forwards to the infallible will_clone.
source§fn will_clone(&self)
fn will_clone(&self)
Called when the node is about to be cloned (and also by the default implementation of
will_open_as_node). Implementations that perform their own open count can use this. Each
call to
will_clone
will be accompanied by an eventual call to close
.fn link_into(
self: Arc<Self>,
_destination_dir: Arc<dyn MutableDirectory>,
_name: Name,
) -> impl Future<Output = Result<(), Status>> + Sendwhere
Self: Sized,
source§fn query_filesystem(&self) -> Result<FilesystemInfo, Status>
fn query_filesystem(&self) -> Result<FilesystemInfo, Status>
Returns information about the filesystem.
source§fn open_as_node(
self: Arc<Self>,
scope: ExecutionScope,
options: NodeOptions,
object_request: ObjectRequestRef<'_>,
) -> Result<(), Status>where
Self: Sized,
fn open_as_node(
self: Arc<Self>,
scope: ExecutionScope,
options: NodeOptions,
object_request: ObjectRequestRef<'_>,
) -> Result<(), Status>where
Self: Sized,
Opens the node using the node protocol.
impl Sync for VmoFile
Auto Trait Implementations§
impl Freeze for VmoFile
impl RefUnwindSafe for VmoFile
impl Send for VmoFile
impl Unpin for VmoFile
impl UnwindSafe for VmoFile
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
Mutably borrows from an owned value. Read more