pub struct Pipe { /* private fields */ }Implementations§
Source§impl Pipe
impl Pipe
pub fn new(default_pipe_capacity: usize) -> PipeHandle
pub fn open( locked: &mut Locked<Unlocked>, current_task: &CurrentTask, pipe: &Arc<Mutex<Self>>, flags: OpenFlags, ) -> Result<Box<dyn FileOps>, Errno>
Sourcepub fn add_reader(&mut self)
pub fn add_reader(&mut self)
Increments the reader count for this pipe by 1.
Sourcepub fn add_writer(&mut self)
pub fn add_writer(&mut self)
Increments the writer count for this pipe by 1.
Sourcepub fn on_close(&mut self)
pub fn on_close(&mut self)
Called whenever a fd to the pipe is closed. Reset the pipe state if there is not more reader or writer.
pub fn read(&mut self, data: &mut dyn OutputBuffer) -> Result<usize, Errno>
pub fn write( &mut self, locked: &mut Locked<FileOpsCore>, current_task: &CurrentTask, data: &mut dyn InputBuffer, ) -> Result<usize, Errno>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Pipe
impl !RefUnwindSafe for Pipe
impl Send for Pipe
impl Sync for Pipe
impl Unpin for Pipe
impl !UnwindSafe for Pipe
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
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§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
Converts the given service transport handle of type
T to [Self]Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
impl<T, U> MultiArchFrom<T> for Uwhere
U: From<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
impl<T, U> TryIntoExt<U> for Twhere
U: TryFromExt<T>,
type Error = <U as TryFromExt<T>>::Error
§fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
fn try_into_ext(self) -> Result<U, <T as TryIntoExt<U>>::Error>
Tries to perform the conversion.