SocketFile

Struct SocketFile 

Source
pub struct SocketFile {
    handle: SpinLock<SocketHandle>,
    local_endpoint: SpinLock<Option<IpEndpoint>>,
    remote_endpoint: SpinLock<Option<IpEndpoint>>,
    shutdown_rd: SpinLock<bool>,
    shutdown_wr: SpinLock<bool>,
    flags: SpinLock<OpenFlags>,
    options: SpinLock<SocketOptions>,
}

Fields§

§handle: SpinLock<SocketHandle>§local_endpoint: SpinLock<Option<IpEndpoint>>§remote_endpoint: SpinLock<Option<IpEndpoint>>§shutdown_rd: SpinLock<bool>§shutdown_wr: SpinLock<bool>§flags: SpinLock<OpenFlags>§options: SpinLock<SocketOptions>

Implementations§

Source§

impl SocketFile

Source

pub fn new(handle: SocketHandle) -> Self

Source

pub fn new_with_flags(handle: SocketHandle, flags: OpenFlags) -> Self

Source

pub fn get_socket_options(&self) -> SocketOptions

Source

pub fn set_socket_options(&self, opts: SocketOptions)

Source

pub fn handle(&self) -> SocketHandle

Source

pub fn set_handle(&self, new_handle: SocketHandle)

Source

pub fn set_local_endpoint(&self, endpoint: IpEndpoint)

Source

pub fn get_local_endpoint(&self) -> Option<IpEndpoint>

Source

pub fn set_remote_endpoint(&self, endpoint: IpEndpoint)

Source

pub fn get_remote_endpoint(&self) -> Option<IpEndpoint>

Source

pub fn shutdown_read(&self)

Source

pub fn shutdown_write(&self)

Source

pub fn is_shutdown_read(&self) -> bool

Source

pub fn is_shutdown_write(&self) -> bool

Trait Implementations§

Source§

impl Drop for SocketFile

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl File for SocketFile

Source§

fn readable(&self) -> bool

检查文件是否可读
Source§

fn writable(&self) -> bool

检查文件是否可写
Source§

fn read(&self, buf: &mut [u8]) -> Result<usize, FsError>

从文件读取数据 Read more
Source§

fn write(&self, buf: &[u8]) -> Result<usize, FsError>

向文件写入数据 Read more
Source§

fn metadata(&self) -> Result<InodeMetadata, FsError>

获取文件元数据
Source§

fn as_any(&self) -> &dyn Any

获取 Any trait 引用,用于安全的类型转换
Source§

fn flags(&self) -> OpenFlags

获取打开标志(可选方法) Read more
Source§

fn set_status_flags(&self, new_flags: OpenFlags) -> Result<(), FsError>

设置文件状态标志(可选方法,用于 F_SETFL) Read more
Source§

fn recvfrom(&self, buf: &mut [u8]) -> Result<(usize, Option<Vec<u8>>), FsError>

从socket接收数据并获取源地址(可选方法,用于recvfrom) Read more
Source§

fn lseek(&self, _offset: isize, _whence: SeekWhence) -> Result<usize, FsError>

设置文件偏移量(可选方法) Read more
Source§

fn offset(&self) -> usize

获取当前偏移量(可选方法) Read more
Source§

fn dentry(&self) -> Result<Arc<Dentry>, FsError>

获取目录项(可选方法) Read more
Source§

fn inode(&self) -> Result<Arc<dyn Inode>, FsError>

获取Inode(可选方法) Read more
Source§

fn get_pipe_size(&self) -> Result<usize, FsError>

获取管道大小(可选方法,用于 F_GETPIPE_SZ) Read more
Source§

fn set_pipe_size(&self, _size: usize) -> Result<(), FsError>

设置管道大小(可选方法,用于 F_SETPIPE_SZ) Read more
Source§

fn get_owner(&self) -> Result<i32, FsError>

获取异步 I/O 所有者(可选方法,用于 F_GETOWN) Read more
Source§

fn set_owner(&self, _pid: i32) -> Result<(), FsError>

设置异步 I/O 所有者(可选方法,用于 F_SETOWN) Read more
Source§

fn read_at(&self, _offset: usize, _buf: &mut [u8]) -> Result<usize, FsError>

从指定位置读取数据(可选方法,用于 pread64/preadv) Read more
Source§

fn write_at(&self, _offset: usize, _buf: &[u8]) -> Result<usize, FsError>

向指定位置写入数据(可选方法,用于 pwrite64/pwritev) Read more
Source§

fn ioctl(&self, _request: u32, _arg: usize) -> Result<isize, FsError>

执行设备特定的控制操作(可选方法,用于 ioctl) Read more

Auto Trait Implementations§

§

impl !Freeze for SocketFile

§

impl !RefUnwindSafe for SocketFile

§

impl Send for SocketFile

§

impl Sync for SocketFile

§

impl Unpin for SocketFile

§

impl UnwindSafe for SocketFile

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where 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>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where 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>

Performs the conversion.