Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::iocp::v1::Context类 参考final

基于 sese-event 的完成端口操作上下文 更多...

#include <IOCPServer_V1.h>

类 sese::iocp::v1::Context 继承关系图:
sese::io::InputStream sese::io::OutputStream sese::io::PeekableStream

Public 成员函数

int64_t read (void *buffer, size_t length) override
 
int64_t write (const void *buffer, size_t length) override
 
int64_t peek (void *buffer, size_t length) override
 
int64_t trunc (size_t length) override
 
int32_t getFd () const
 
void * getData () const
 
void setData (void *p_data)
 
- Public 成员函数 继承自 sese::io::InputStream
virtual ~InputStream () noexcept=default
 
- Public 成员函数 继承自 sese::io::OutputStream
virtual ~OutputStream () noexcept=default
 
int64_t write (const std::string_view &buffer)
 
int64_t write (const text::StringView &buffer)
 
template<typename T >
int64_t write (std::vector< T > &buffer)
 
template<typename T , size_t N>
int64_t write (std::array< T, N > &buffer)
 
- Public 成员函数 继承自 sese::io::PeekableStream
virtual ~PeekableStream ()=default
 

Private 属性

IOCPServerself {}
 
IOCPServiceclient {}
 
socket_t fd {0}
 
void * ssl {}
 
bool isConn {false}
 
event::BaseEventevent {}
 
service::v2::TimeoutEventtimeoutEvent {}
 
io::ByteBuilder send {8192, 8192}
 
io::ByteBuilder recv {8192, 8192}
 
void * data {}
 

友元

class IOCPServer
 
class IOCPService
 

额外继承的成员函数

- Public 类型 继承自 sese::io::InputStream
typedef std::shared_ptr< InputStreamPtr
 
- Public 类型 继承自 sese::io::OutputStream
typedef std::shared_ptr< OutputStreamPtr
 
- Public 类型 继承自 sese::io::PeekableStream
typedef std::shared_ptr< PeekableStreamPtr
 

详细描述

基于 sese-event 的完成端口操作上下文

成员函数说明

◆ getData()

void * sese::iocp::v1::Context::getData ( ) const
inlinenodiscard

获取当前上下文额外数据

返回
额外数据

引用了 data.

◆ getFd()

int32_t sese::iocp::v1::Context::getFd ( ) const
inlinenodiscard

获取当前上下文连接文件描述符

返回
文件描述符

引用了 fd.

◆ peek()

int64_t Context::peek ( void * buffer,
size_t length )
overridevirtual

从当前连接中读取内容,但不步进

参数
buffer缓存
length缓存大小
返回
实际读取大小

实现了 sese::io::PeekableStream.

引用了 sese::io::AbstractByteBuffer::peek() , 以及 recv.

◆ read()

int64_t Context::read ( void * buffer,
size_t length )
overridevirtual

从当前连接中读取内容

参数
buffer缓存
length缓存大小
返回
实际读取大小

实现了 sese::io::InputStream.

引用了 sese::io::AbstractByteBuffer::read() , 以及 recv.

◆ setData()

void sese::iocp::v1::Context::setData ( void * p_data)
inline

设置当前上下文额外数据

参数
p_data额外数据

引用了 data.

◆ trunc()

int64_t Context::trunc ( size_t length)
overridevirtual

在当前连接中步进,不读取内容

参数
length步进大小
返回
实际步进大小

实现了 sese::io::PeekableStream.

引用了 recv , 以及 sese::io::AbstractByteBuffer::trunc().

◆ write()

int64_t Context::write ( const void * buffer,
size_t length )
overridevirtual

向当前连接中写入内容

参数
buffer缓存
length缓存大小
返回
实际写入大小

实现了 sese::io::OutputStream.

引用了 send , 以及 sese::io::AbstractByteBuffer::write().

友元及相关符号说明

◆ IOCPServer

friend class IOCPServer
friend

◆ IOCPService

friend class IOCPService
friend

类成员变量说明

◆ client

◆ data

void* sese::iocp::v1::Context::data {}
private

被这些函数引用 getData() , 以及 setData().

◆ event

◆ fd

◆ isConn

bool sese::iocp::v1::Context::isConn {false}
private

◆ recv

io::ByteBuilder sese::iocp::v1::Context::recv {8192, 8192}
private

被这些函数引用 peek(), read() , 以及 trunc().

◆ self

◆ send

io::ByteBuilder sese::iocp::v1::Context::send {8192, 8192}
private

被这些函数引用 write().

◆ ssl

void* sese::iocp::v1::Context::ssl {}
private

◆ timeoutEvent


该类的文档由以下文件生成: