CARLA
 
载入中...
搜索中...
未找到
Public 类型 | Public 成员函数 | 静态 Public 成员函数 | Private 成员函数 | Private 属性 | 友元 | 所有成员列表
carla::streaming::detail::tcp::ServerSession类 参考

A TCP server session. 更多...

#include <ServerSession.h>

+ 类 carla::streaming::detail::tcp::ServerSession 继承关系图:
+ carla::streaming::detail::tcp::ServerSession 的协作图:

Public 类型

using callback_function_type = std::function<void(std::shared_ptr<ServerSession>)>
 
using socket_type = boost::asio::ip::tcp::socket
 

Public 成员函数

void Close ()
 Post a job to close the session.
 
stream_id_type get_stream_id () const
 
void Open (callback_function_type on_opened, callback_function_type on_closed)
 Starts the session and calls on_opened after successfully reading the stream id, and on_closed once the session is closed.
 
 ServerSession (boost::asio::io_context &io_context, time_duration timeout, Server &server)
 
template<typename... Buffers>
void Write (Buffers... buffers)
 Writes some data to the socket.
 
void Write (std::shared_ptr< const Message > message)
 Writes some data to the socket.
 

静态 Public 成员函数

template<typename... Buffers>
static auto MakeMessage (Buffers... buffers)
 

Private 成员函数

void CloseNow (boost::system::error_code ec=boost::system::error_code())
 
void StartTimer ()
 
- Private 成员函数 继承自 carla::profiler::LifetimeProfiled
 LifetimeProfiled ()=default
 
- Private 成员函数 继承自 carla::NonCopyable
 NonCopyable ()=default
 
 NonCopyable (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
NonCopyableoperator= (NonCopyable &&)=delete
 

Private 属性

boost::asio::deadline_timer _deadline
 
bool _is_writing = false
 
callback_function_type _on_closed
 
Server_server
 
const size_t _session_id
 
socket_type _socket
 
boost::asio::io_context::strand _strand
 
stream_id_type _stream_id = 0u
 
time_duration _timeout
 

友元

class Server
 

详细描述

A TCP server session.

When a session opens, it reads from the socket a stream id object and passes itself to the callback functor. The session closes itself after timeout of inactivity is met.

在文件 ServerSession.h41 行定义.

成员类型定义说明

◆ callback_function_type

在文件 ServerSession.h48 行定义.

◆ socket_type

using carla::streaming::detail::tcp::ServerSession::socket_type = boost::asio::ip::tcp::socket

在文件 ServerSession.h47 行定义.

构造及析构函数说明

◆ ServerSession()

carla::streaming::detail::tcp::ServerSession::ServerSession ( boost::asio::io_context & io_context,
time_duration timeout,
Server & server )
explicit

在文件 ServerSession.cpp28 行定义.

成员函数说明

◆ Close()

void carla::streaming::detail::tcp::ServerSession::Close ( )

Post a job to close the session.

在文件 ServerSession.cpp121 行定义.

◆ CloseNow()

void carla::streaming::detail::tcp::ServerSession::CloseNow ( boost::system::error_code ec = boost::system::error_code())
private

在文件 ServerSession.cpp140 行定义.

引用了 carla::log_debug().

被这些函数引用 Open() , 以及 Write().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ get_stream_id()

stream_id_type carla::streaming::detail::tcp::ServerSession::get_stream_id ( ) const
inline
警告
This function should only be called after the session is opened. It is safe to call this function from within the callback.

在文件 ServerSession.h63 行定义.

引用了 _stream_id.

◆ MakeMessage()

template<typename... Buffers>
static auto carla::streaming::detail::tcp::ServerSession::MakeMessage ( Buffers... buffers)
inlinestatic

在文件 ServerSession.h68 行定义.

被这些函数引用 carla::streaming::detail::MultiStreamState::Write() , 以及 Write().

+ 这是这个函数的调用关系图:

◆ Open()

void carla::streaming::detail::tcp::ServerSession::Open ( callback_function_type on_opened,
callback_function_type on_closed )

Starts the session and calls on_opened after successfully reading the stream id, and on_closed once the session is closed.

在文件 ServerSession.cpp41 行定义.

引用了 _deadline, _on_closed, _session_id, _socket, _strand, _stream_id, _timeout, CloseNow(), DEBUG_ASSERT, DEBUG_ASSERT_EQ, DEBUG_ONLY, carla::log_debug(), carla::log_error() , 以及 StartTimer().

+ 函数调用图:

◆ StartTimer()

void carla::streaming::detail::tcp::ServerSession::StartTimer ( )
private

在文件 ServerSession.cpp125 行定义.

引用了 carla::log_debug().

被这些函数引用 Open().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ Write() [1/2]

template<typename... Buffers>
void carla::streaming::detail::tcp::ServerSession::Write ( Buffers... buffers)
inline

Writes some data to the socket.

在文件 ServerSession.h80 行定义.

引用了 MakeMessage() , 以及 Write().

+ 函数调用图:

◆ Write() [2/2]

void carla::streaming::detail::tcp::ServerSession::Write ( std::shared_ptr< const Message > message)

Writes some data to the socket.

在文件 ServerSession.cpp78 行定义.

引用了 _deadline, _is_writing, _server, _session_id, _socket, _strand, _timeout, CloseNow(), DEBUG_ASSERT, DEBUG_ASSERT_EQ, DEBUG_ONLY, carla::streaming::detail::tcp::Server::IsSynchronousMode(), carla::log_debug() , 以及 carla::log_info().

被这些函数引用 Write().

+ 函数调用图:
+ 这是这个函数的调用关系图:

友元及相关函数文档

◆ Server

friend class Server
friend

在文件 ServerSession.h93 行定义.

类成员变量说明

◆ _deadline

boost::asio::deadline_timer carla::streaming::detail::tcp::ServerSession::_deadline
private

在文件 ServerSession.h105 行定义.

被这些函数引用 Open() , 以及 Write().

◆ _is_writing

bool carla::streaming::detail::tcp::ServerSession::_is_writing = false
private

在文件 ServerSession.h111 行定义.

被这些函数引用 Write().

◆ _on_closed

callback_function_type carla::streaming::detail::tcp::ServerSession::_on_closed
private

在文件 ServerSession.h109 行定义.

被这些函数引用 Open().

◆ _server

Server& carla::streaming::detail::tcp::ServerSession::_server
private

在文件 ServerSession.h95 行定义.

被这些函数引用 Write().

◆ _session_id

const size_t carla::streaming::detail::tcp::ServerSession::_session_id
private

在文件 ServerSession.h97 行定义.

被这些函数引用 Open() , 以及 Write().

◆ _socket

socket_type carla::streaming::detail::tcp::ServerSession::_socket
private

在文件 ServerSession.h101 行定义.

被这些函数引用 Open() , 以及 Write().

◆ _strand

boost::asio::io_context::strand carla::streaming::detail::tcp::ServerSession::_strand
private

在文件 ServerSession.h107 行定义.

被这些函数引用 Open() , 以及 Write().

◆ _stream_id

stream_id_type carla::streaming::detail::tcp::ServerSession::_stream_id = 0u
private

在文件 ServerSession.h99 行定义.

被这些函数引用 get_stream_id() , 以及 Open().

◆ _timeout

time_duration carla::streaming::detail::tcp::ServerSession::_timeout
private

在文件 ServerSession.h103 行定义.

被这些函数引用 Open() , 以及 Write().


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