[−][src]Struct tiny_nix_ipc::Socket
Methods
impl Socket
[src]
pub fn new_socketpair() -> Result<(Socket, Socket)>
[src]
Creates a socket pair (AF_UNIX/SOCK_SEQPACKET).
Both sockets are close-on-exec by default.
pub fn no_cloexec(&mut self) -> Result<()>
[src]
Disables close-on-exec on the socket (to preserve it across process forks).
pub fn recv_into_iovec<F: Default + AsMut<[RawFd]>>(
&mut self,
iov: &[IoVec<&mut [u8]>]
) -> Result<(usize, Option<F>)>
[src]
&mut self,
iov: &[IoVec<&mut [u8]>]
) -> Result<(usize, Option<F>)>
Reads bytes from the socket into the given scatter/gather array.
If file descriptors were passed, returns them too.
To receive file descriptors, you need to instantiate the type parameter F
as [RawFd; n]
, where n
is the number of descriptors you want to receive.
Received file descriptors are set close-on-exec.
pub fn recv_into_slice<F: Default + AsMut<[RawFd]>>(
&mut self,
buf: &mut [u8]
) -> Result<(usize, Option<F>)>
[src]
&mut self,
buf: &mut [u8]
) -> Result<(usize, Option<F>)>
Reads bytes from the socket into the given buffer.
If file descriptors were passed, returns them too.
To receive file descriptors, you need to instantiate the type parameter F
as [RawFd; n]
, where n
is the number of descriptors you want to receive.
Received file descriptors are set close-on-exec.
pub fn recv_into_buf<F: Default + AsMut<[RawFd]>>(
&mut self,
buf_size: usize
) -> Result<(usize, Vec<u8>, Option<F>)>
[src]
&mut self,
buf_size: usize
) -> Result<(usize, Vec<u8>, Option<F>)>
Reads bytes from the socket into a new buffer.
If file descriptors were passed, returns them too.
To receive file descriptors, you need to instantiate the type parameter F
as [RawFd; n]
, where n
is the number of descriptors you want to receive.
Received file descriptors are set close-on-exec.
pub fn recv_into_buf_with_len<F: Default + AsMut<[RawFd]>>(
&mut self,
buf_size: usize
) -> Result<(usize, Vec<u8>, u64, Option<F>)>
[src]
&mut self,
buf_size: usize
) -> Result<(usize, Vec<u8>, u64, Option<F>)>
Reads bytes from the socket into a new buffer, also reading the first 64 bits as length. The resulting buffer is truncated to that length.
If file descriptors were passed, returns them too.
To receive file descriptors, you need to instantiate the type parameter F
as [RawFd; n]
, where n
is the number of descriptors you want to receive.
Received file descriptors are set close-on-exec.
pub unsafe fn recv_struct_raw<T, F: Default + AsMut<[RawFd]>>(
&mut self
) -> Result<(T, Option<F>)>
[src]
&mut self
) -> Result<(T, Option<F>)>
See recv_struct
for docs
Safety
- For some types (e.g.), not every bit pattern is allowed. If bytes, read from socket aren't correct, that's UB.
- Some types mustn't change their memory location (see
std::pin::Pin
). Sending object of such a type is UB.
pub fn send_iovec(
&mut self,
iov: &[IoVec<&[u8]>],
fds: Option<&[RawFd]>
) -> Result<usize>
[src]
&mut self,
iov: &[IoVec<&[u8]>],
fds: Option<&[RawFd]>
) -> Result<usize>
Sends bytes from scatter-gather vectors over the socket.
Optionally passes file descriptors with the message.
pub fn send_slice(
&mut self,
data: &[u8],
fds: Option<&[RawFd]>
) -> Result<usize>
[src]
&mut self,
data: &[u8],
fds: Option<&[RawFd]>
) -> Result<usize>
Sends bytes from a slice over the socket.
Optionally passes file descriptors with the message.
pub fn send_slice_with_len(
&mut self,
data: &[u8],
fds: Option<&[RawFd]>
) -> Result<usize>
[src]
&mut self,
data: &[u8],
fds: Option<&[RawFd]>
) -> Result<usize>
Sends bytes from a slice over the socket, prefixing with the length (as a 64-bit unsigned integer).
Optionally passes file descriptors with the message.
pub unsafe fn send_struct_raw<T>(
&mut self,
data: &T,
fds: Option<&[RawFd]>
) -> Result<usize>
[src]
&mut self,
data: &T,
fds: Option<&[RawFd]>
) -> Result<usize>
See send_struct
for docs.
Safety
- T must not have padding bytes.
- Also, if T violates
recv_struct_raw
safety preconditions, receiving it will trigger undefined behavior.
Trait Implementations
impl Drop for Socket
[src]
impl AsRawFd for Socket
[src]
impl FromRawFd for Socket
[src]
unsafe fn from_raw_fd(fd: RawFd) -> Socket
[src]
impl IntoRawFd for Socket
[src]
fn into_raw_fd(self) -> RawFd
[src]
Auto Trait Implementations
impl Send for Socket
impl Sync for Socket
impl Unpin for Socket
impl UnwindSafe for Socket
impl RefUnwindSafe for Socket
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,