pub struct PipeEndpoint {
data: Arc<SharedPipeData>,
can_read: bool,
can_write: bool,
id: String,
nonblocking: AtomicBool,
}Expand description
A generic pipe endpoint
This represents the basic building block for all pipe types. It can be configured for read-only, write-only, or bidirectional access.
Fields§
§data: Arc<SharedPipeData>Shared pipe data (state + wakers)
can_read: boolWhether this endpoint can read
can_write: boolWhether this endpoint can write
id: StringUnique identifier for debugging
nonblocking: AtomicBoolPer-endpoint non-blocking flag (O_NONBLOCK semantics)
Implementations§
Source§impl PipeEndpoint
impl PipeEndpoint
Sourcefn new(
data: Arc<SharedPipeData>,
can_read: bool,
can_write: bool,
id: String,
) -> Self
fn new( data: Arc<SharedPipeData>, can_read: bool, can_write: bool, id: String, ) -> Self
Create a new pipe endpoint with specified capabilities
Trait Implementations§
Source§impl Clone for PipeEndpoint
impl Clone for PipeEndpoint
Source§impl CloneOps for PipeEndpoint
impl CloneOps for PipeEndpoint
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 Drop for PipeEndpoint
impl Drop for PipeEndpoint
Source§impl PipeObject for PipeEndpoint
impl PipeObject for PipeEndpoint
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§fn as_selectable(&self) -> Option<&dyn Selectable>
fn as_selectable(&self) -> Option<&dyn Selectable>
Optional capability: expose select/pselect readiness/wait interface. Read more
Source§impl StreamIpcOps for PipeEndpoint
impl StreamIpcOps for PipeEndpoint
Source§fn is_connected(&self) -> bool
fn is_connected(&self) -> bool
Check if the stream 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 StreamOps for PipeEndpoint
impl StreamOps for PipeEndpoint
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 PipeEndpoint
impl !RefUnwindSafe for PipeEndpoint
impl Send for PipeEndpoint
impl Sync for PipeEndpoint
impl Unpin for PipeEndpoint
impl !UnwindSafe for PipeEndpoint
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)