[][src]Struct tiny_nix_ipc::Socket

pub struct Socket { /* fields omitted */ }

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

impl IntoRawFd for Socket[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]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]