pub struct UnidirectionalPipe {
endpoint: PipeEndpoint,
}
Expand description
A unidirectional pipe (read-only or write-only endpoint)
Fields§
§endpoint: PipeEndpoint
Implementations§
Source§impl UnidirectionalPipe
impl UnidirectionalPipe
Sourcepub fn create_pair(buffer_size: usize) -> (KernelObject, KernelObject)
pub fn create_pair(buffer_size: usize) -> (KernelObject, KernelObject)
Create a new pipe pair (read_end, write_end) as KernelObjects
Trait Implementations§
Source§impl Clone for UnidirectionalPipe
impl Clone for UnidirectionalPipe
Source§impl CloneOps for UnidirectionalPipe
impl CloneOps for UnidirectionalPipe
Source§fn custom_clone(&self) -> KernelObject
fn custom_clone(&self) -> KernelObject
Perform a custom clone operation and return the cloned object Read more
Source§impl IpcObject for UnidirectionalPipe
impl IpcObject for UnidirectionalPipe
Source§fn is_connected(&self) -> bool
fn is_connected(&self) -> bool
Check if the IPC object is still connected/valid
Source§fn peer_count(&self) -> usize
fn peer_count(&self) -> usize
Get the number of active peers (readers/writers/endpoints)
Source§fn description(&self) -> String
fn description(&self) -> String
Get a human-readable description of this IPC object
Source§impl PipeObject for UnidirectionalPipe
impl PipeObject for UnidirectionalPipe
Source§fn has_readers(&self) -> bool
fn has_readers(&self) -> bool
Check if there are readers on the other end
Source§fn has_writers(&self) -> bool
fn has_writers(&self) -> bool
Check if there are writers on the other end
Source§fn buffer_size(&self) -> usize
fn buffer_size(&self) -> usize
Get the buffer size of the pipe
Source§fn available_bytes(&self) -> usize
fn available_bytes(&self) -> usize
Get the number of bytes currently in the pipe buffer
Source§fn is_readable(&self) -> bool
fn is_readable(&self) -> bool
Check if this end of the pipe is readable
Source§fn is_writable(&self) -> bool
fn is_writable(&self) -> bool
Check if this end of the pipe is writable
Source§impl StreamOps for UnidirectionalPipe
impl StreamOps for UnidirectionalPipe
Source§fn read(&self, buffer: &mut [u8]) -> Result<usize, StreamError>
fn read(&self, buffer: &mut [u8]) -> Result<usize, StreamError>
Read data from the stream
Source§fn write(&self, buffer: &[u8]) -> Result<usize, StreamError>
fn write(&self, buffer: &[u8]) -> Result<usize, StreamError>
Write data to the stream
Auto Trait Implementations§
impl Freeze for UnidirectionalPipe
impl !RefUnwindSafe for UnidirectionalPipe
impl Send for UnidirectionalPipe
impl Sync for UnidirectionalPipe
impl Unpin for UnidirectionalPipe
impl !UnwindSafe for UnidirectionalPipe
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)