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

A client that connects to a single stream. 更多...

#include <Client.h>

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

Public 类型

using callback_function_type = std::function<void (Buffer)>
 
using endpoint = boost::asio::ip::tcp::endpoint
 
using protocol_type = endpoint::protocol_type
 

Public 成员函数

 Client (boost::asio::io_context &io_context, const token_type &token, callback_function_type callback)
 
void Connect ()
 
stream_id_type GetStreamId () const
 
void Stop ()
 
 ~Client ()
 

Private 成员函数

void ReadData ()
 
void Reconnect ()
 
- 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
 
callback_function_type _callback
 
boost::asio::deadline_timer _connection_timer
 
std::atomic_bool _done {false}
 
boost::asio::ip::tcp::socket _socket
 
boost::asio::io_context::strand _strand
 
const token_type _token
 

详细描述

A client that connects to a single stream.

警告
This client should be stopped before releasing the shared pointer or won't be destroyed.

在文件 streaming/detail/tcp/Client.h36 行定义.

成员类型定义说明

◆ callback_function_type

在文件 streaming/detail/tcp/Client.h44 行定义.

◆ endpoint

using carla::streaming::detail::tcp::Client::endpoint = boost::asio::ip::tcp::endpoint

在文件 streaming/detail/tcp/Client.h42 行定义.

◆ protocol_type

在文件 streaming/detail/tcp/Client.h43 行定义.

构造及析构函数说明

◆ Client()

carla::streaming::detail::tcp::Client::Client ( boost::asio::io_context & io_context,
const token_type & token,
callback_function_type callback )

在文件 streaming/detail/tcp/Client.cpp68 行定义.

引用了 _token, carla::streaming::detail::token_type::protocol_is_tcp() , 以及 carla::throw_exception().

+ 函数调用图:

◆ ~Client()

carla::streaming::detail::tcp::Client::~Client ( )
default

成员函数说明

◆ Connect()

void carla::streaming::detail::tcp::Client::Connect ( )

在文件 streaming/detail/tcp/Client.cpp87 行定义.

引用了 _done, _socket, _strand, _token, Connect(), DEBUG_ASSERT, DEBUG_ASSERT_EQ, DEBUG_ONLY, carla::streaming::detail::token_type::get_stream_id(), carla::streaming::detail::token_type::is_valid(), carla::log_debug(), carla::log_info(), carla::streaming::detail::token_type::protocol_is_tcp(), ReadData(), Reconnect() , 以及 carla::streaming::detail::token_type::to_tcp_endpoint().

被这些函数引用 Connect(), ReadData() , 以及 Reconnect().

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

◆ GetStreamId()

stream_id_type carla::streaming::detail::tcp::Client::GetStreamId ( ) const
inline

在文件 streaming/detail/tcp/Client.h55 行定义.

引用了 _token , 以及 carla::streaming::detail::token_type::get_stream_id().

+ 函数调用图:

◆ ReadData()

void carla::streaming::detail::tcp::Client::ReadData ( )
private

在文件 streaming/detail/tcp/Client.cpp166 行定义.

引用了 _buffer_pool, _done, _socket, _strand, Connect(), DEBUG_ASSERT_EQ, DEBUG_ASSERT_NE, DEBUG_ONLY, carla::log_debug() , 以及 ReadData().

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

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

◆ Reconnect()

void carla::streaming::detail::tcp::Client::Reconnect ( )
private

在文件 streaming/detail/tcp/Client.cpp156 行定义.

引用了 _connection_timer, Connect() , 以及 carla::time_duration::seconds().

被这些函数引用 Connect().

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

◆ Stop()

void carla::streaming::detail::tcp::Client::Stop ( )

在文件 streaming/detail/tcp/Client.cpp145 行定义.

引用了 _connection_timer, _done, _socket , 以及 _strand.

类成员变量说明

◆ _buffer_pool

std::shared_ptr<BufferPool> carla::streaming::detail::tcp::Client::_buffer_pool
private

在文件 streaming/detail/tcp/Client.h77 行定义.

被这些函数引用 ReadData().

◆ _callback

callback_function_type carla::streaming::detail::tcp::Client::_callback
private

在文件 streaming/detail/tcp/Client.h69 行定义.

◆ _connection_timer

boost::asio::deadline_timer carla::streaming::detail::tcp::Client::_connection_timer
private

在文件 streaming/detail/tcp/Client.h75 行定义.

被这些函数引用 Reconnect() , 以及 Stop().

◆ _done

std::atomic_bool carla::streaming::detail::tcp::Client::_done {false}
private

在文件 streaming/detail/tcp/Client.h79 行定义.

被这些函数引用 Connect(), ReadData() , 以及 Stop().

◆ _socket

boost::asio::ip::tcp::socket carla::streaming::detail::tcp::Client::_socket
private

在文件 streaming/detail/tcp/Client.h71 行定义.

被这些函数引用 Connect(), ReadData() , 以及 Stop().

◆ _strand

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

在文件 streaming/detail/tcp/Client.h73 行定义.

被这些函数引用 Connect(), ReadData() , 以及 Stop().

◆ _token

const token_type carla::streaming::detail::tcp::Client::_token
private

在文件 streaming/detail/tcp/Client.h67 行定义.

被这些函数引用 Client(), Connect() , 以及 GetStreamId().


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