Trait LinkableServerHandler

Source
pub trait LinkableServerHandler<___T: Transport> {
    // Required method
    fn link_into(
        &mut self,
        sender: &ServerSender<___T, Linkable>,
        request: RequestBuffer<___T, LinkInto>,
        responder: Responder<LinkInto>,
    );
}
Expand description

A server handler for the Linkable protocol.

See Linkable for more details.

Required Methods§

Creates a link to this this object with name dst in the directory represented by dst_parent_token.

dst must be a resolved object name. Including “/” in the string will return ZX_ERR_INVALID_ARGS.

This method requires the maximal set of rights supported by the filesystem for this object. For files this would typically be [Rights.READ_BYTES], [Rights.WRITE_BYTES], [Rights.GET_ATTRIBUTES] and [Rights.UPDATE_ATTRIBUTES]. Some filesystems might also support the [Rights.EXECUTE] right. Insufficient rights will result in ZX_ERR_ACCESS_DENIED.

If this object has no links and is NOT an unnamed temporary object (objects opened with Flags.FLAG_CREATE_AS_UNNAMED_TEMPORARY), it will fail with ZX_ERR_NOT_FOUND.

For unnamed temporary objects, use LinkInto to give it a name. Upon successful completion, the object will be permanently linked to the filesystem. Requires that the unnamed temporary object is linkable, if not, it will fail with ZX_ERR_NOT_FOUND.

This method does not have the same atomicity properties has the Directory::Link method, which means that calling Open then LinkInto is not equivalent to Directory::Link because LinkInto will not prevent the source from being renamed or unlinked.

Implementors§