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

A TCP server session. 更多...

#include <primary.h>

+ 类 carla::multigpu::Primary 继承关系图:
+ carla::multigpu::Primary 的协作图:

Public 类型

using socket_type = boost::asio::ip::tcp::socket
 

Public 成员函数

void Close ()
 Post a job to close the session.
 
void Open (Listener::callback_function_type on_opened, Listener::callback_function_type on_closed, Listener::callback_function_type_response on_response)
 Starts the session and calls on_opened after successfully reading the stream id, and on_closed once the session is closed.
 
 Primary (boost::asio::io_context &io_context, time_duration timeout, Listener &server)
 
void ReadData ()
 read data
 
template<typename... Buffers>
void Write (Buffers... buffers)
 Writes some data to the socket.
 
void Write (std::shared_ptr< const carla::streaming::detail::tcp::Message > message)
 Writes some data to the socket.
 
void Write (std::string text)
 Writes a string
 
 ~Primary ()
 

静态 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 属性

std::shared_ptr< BufferPool_buffer_pool
 
boost::asio::deadline_timer _deadline
 
bool _is_writing = false
 
Listener::callback_function_type _on_closed
 
Listener::callback_function_type_response _on_response
 
Listener_server
 
const size_t _session_id
 
socket_type _socket
 
boost::asio::io_context::strand _strand
 
time_duration _timeout
 

友元

class Listener
 

详细描述

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.

在文件 primary.h31 行定义.

成员类型定义说明

◆ socket_type

using carla::multigpu::Primary::socket_type = boost::asio::ip::tcp::socket

在文件 primary.h37 行定义.

构造及析构函数说明

◆ Primary()

carla::multigpu::Primary::Primary ( boost::asio::io_context & io_context,
time_duration timeout,
Listener & server )
explicit

在文件 primary.cpp27 行定义.

◆ ~Primary()

carla::multigpu::Primary::~Primary ( )

在文件 primary.cpp41 行定义.

引用了 _socket.

成员函数说明

◆ Close()

void carla::multigpu::Primary::Close ( )

Post a job to close the session.

在文件 primary.cpp176 行定义.

引用了 _strand.

被这些函数引用 StartTimer().

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

◆ CloseNow()

void carla::multigpu::Primary::CloseNow ( boost::system::error_code ec = boost::system::error_code())
private

在文件 primary.cpp203 行定义.

引用了 _deadline, _on_closed, _session_id, _socket , 以及 carla::log_debug().

+ 函数调用图:

◆ MakeMessage()

template<typename... Buffers>
static auto carla::multigpu::Primary::MakeMessage ( Buffers... buffers)
inlinestatic

在文件 primary.h54 行定义.

被这些函数引用 Write(), carla::multigpu::Router::Write(), carla::multigpu::Router::WriteToNext() , 以及 carla::multigpu::Router::WriteToOne().

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

◆ Open()

void carla::multigpu::Primary::Open ( Listener::callback_function_type on_opened,
Listener::callback_function_type on_closed,
Listener::callback_function_type_response on_response )

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

在文件 primary.cpp49 行定义.

引用了 _on_closed, _on_response, _socket, DEBUG_ASSERT , 以及 ReadData().

+ 函数调用图:

◆ ReadData()

void carla::multigpu::Primary::ReadData ( )

read data

在文件 primary.cpp122 行定义.

引用了 _strand, DEBUG_ASSERT_EQ, DEBUG_ASSERT_NE, DEBUG_ONLY , 以及 carla::log_error().

被这些函数引用 Open().

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

◆ StartTimer()

void carla::multigpu::Primary::StartTimer ( )
private

在文件 primary.cpp185 行定义.

引用了 _deadline, _session_id, Close(), carla::log_debug() , 以及 carla::log_error().

+ 函数调用图:

◆ Write() [1/3]

template<typename... Buffers>
void carla::multigpu::Primary::Write ( Buffers... buffers)
inline

Writes some data to the socket.

在文件 primary.h72 行定义.

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

+ 函数调用图:

◆ Write() [2/3]

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

Writes some data to the socket.

在文件 primary.cpp68 行定义.

引用了 _strand, DEBUG_ASSERT, DEBUG_ONLY , 以及 carla::log_error().

被这些函数引用 Write().

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

◆ Write() [3/3]

void carla::multigpu::Primary::Write ( std::string text)

Writes a string

在文件 primary.cpp98 行定义.

引用了 _strand.

友元及相关函数文档

◆ Listener

friend class Listener
friend

在文件 primary.h85 行定义.

类成员变量说明

◆ _buffer_pool

std::shared_ptr<BufferPool> carla::multigpu::Primary::_buffer_pool
private

在文件 primary.h103 行定义.

◆ _deadline

boost::asio::deadline_timer carla::multigpu::Primary::_deadline
private

在文件 primary.h95 行定义.

被这些函数引用 CloseNow() , 以及 StartTimer().

◆ _is_writing

bool carla::multigpu::Primary::_is_writing = false
private

在文件 primary.h105 行定义.

◆ _on_closed

Listener::callback_function_type carla::multigpu::Primary::_on_closed
private

在文件 primary.h99 行定义.

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

◆ _on_response

Listener::callback_function_type_response carla::multigpu::Primary::_on_response
private

在文件 primary.h101 行定义.

被这些函数引用 Open().

◆ _server

Listener& carla::multigpu::Primary::_server
private

在文件 primary.h87 行定义.

◆ _session_id

const size_t carla::multigpu::Primary::_session_id
private

在文件 primary.h89 行定义.

被这些函数引用 CloseNow() , 以及 StartTimer().

◆ _socket

socket_type carla::multigpu::Primary::_socket
private

在文件 primary.h91 行定义.

被这些函数引用 CloseNow(), Open() , 以及 ~Primary().

◆ _strand

boost::asio::io_context::strand carla::multigpu::Primary::_strand
private

在文件 primary.h97 行定义.

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

◆ _timeout

time_duration carla::multigpu::Primary::_timeout
private

在文件 primary.h93 行定义.


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