A TCP server session. 更多...
#include <ServerSession.h>
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 | |
NonCopyable & | operator= (const NonCopyable &)=delete |
NonCopyable & | operator= (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.h 第 41 行定义.
using carla::streaming::detail::tcp::ServerSession::callback_function_type = std::function<void(std::shared_ptr<ServerSession>)> |
在文件 ServerSession.h 第 48 行定义.
using carla::streaming::detail::tcp::ServerSession::socket_type = boost::asio::ip::tcp::socket |
在文件 ServerSession.h 第 47 行定义.
|
explicit |
在文件 ServerSession.cpp 第 28 行定义.
void carla::streaming::detail::tcp::ServerSession::Close | ( | ) |
Post a job to close the session.
在文件 ServerSession.cpp 第 121 行定义.
|
private |
|
inline |
在文件 ServerSession.h 第 63 行定义.
引用了 _stream_id.
|
inlinestatic |
在文件 ServerSession.h 第 68 行定义.
被这些函数引用 carla::streaming::detail::MultiStreamState::Write() , 以及 Write().
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.cpp 第 41 行定义.
引用了 _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().
|
private |
|
inline |
Writes some data to the socket.
在文件 ServerSession.h 第 80 行定义.
引用了 MakeMessage() , 以及 Write().
void carla::streaming::detail::tcp::ServerSession::Write | ( | std::shared_ptr< const Message > | message | ) |
Writes some data to the socket.
在文件 ServerSession.cpp 第 78 行定义.
引用了 _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().
|
friend |
在文件 ServerSession.h 第 93 行定义.
|
private |
在文件 ServerSession.h 第 105 行定义.
|
private |
在文件 ServerSession.h 第 111 行定义.
被这些函数引用 Write().
|
private |
在文件 ServerSession.h 第 109 行定义.
被这些函数引用 Open().
|
private |
在文件 ServerSession.h 第 95 行定义.
被这些函数引用 Write().
|
private |
在文件 ServerSession.h 第 97 行定义.
|
private |
在文件 ServerSession.h 第 101 行定义.
|
private |
在文件 ServerSession.h 第 107 行定义.
|
private |
在文件 ServerSession.h 第 99 行定义.
被这些函数引用 get_stream_id() , 以及 Open().
|
private |
在文件 ServerSession.h 第 103 行定义.