CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | 静态 Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers > 模板类 参考

通过TCP套接字发送的一组缓冲区的序列化,作为单个消息发送。 更多...

#include <Message.h>

+ 类 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers > 继承关系图:
+ carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers > 的协作图:

Public 成员函数

bool empty () const noexcept
 检查消息是否为空。
 
auto GetBufferSequence () const
 获取消息的缓冲区序列。
 
template<typename... Buffers>
 MessageTmpl (SharedBufferView buf, Buffers... buffers)
 模板化的构造函数,用于创建包含多个缓冲区的消息对象。
 
auto size () const noexcept
 获取消息的大小(不包括头部。
 

静态 Public 成员函数

static constexpr size_t max_size ()
 获取单个消息中可以包含的缓冲区的最大数量。
 

Private 成员函数

template<typename... Buffers>
 MessageTmpl (size_t size, SharedBufferView buffer, Buffers... buffers)
 模板化的构造函数,用于初始化消息对象。
 
 MessageTmpl (size_t)
 私有构造函数,用于限制外部直接创建对象。
 
- Private 成员函数 继承自 carla::NonCopyable
 NonCopyable ()=default
 
 NonCopyable (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
NonCopyableoperator= (NonCopyable &&)=delete
 

Private 属性

std::array< boost::asio::const_buffer, MaxNumberOfBuffers+1u > _buffer_views
 存储所有缓冲区视图的数组,包括_total_size的缓冲区视图。 注意,数组大小比_buffers多一个,以容纳_total_size的缓冲区视图。
 
std::array< SharedBufferView, MaxNumberOfBuffers > _buffers
 存储所有传入的缓冲区对象的数组。
 
message_size_type _number_of_buffers = 0u
 缓冲区数量(不包括_total_size的缓冲区)。
 
message_size_type _total_size = 0u
 消息的总大小(以字节为单位,不包括头部)。
 

详细描述

template<size_t MaxNumberOfBuffers>
class carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >

通过TCP套接字发送的一组缓冲区的序列化,作为单个消息发送。

模板参数MaxNumberOfBuffers在编译时限制单个消息中可以包含的缓冲区的最大数量。

模板参数
MaxNumberOfBuffers单个消息中可以包含的缓冲区的最大数量(编译时常量)。

在文件 Message.h38 行定义.

构造及析构函数说明

◆ MessageTmpl() [1/3]

template<size_t MaxNumberOfBuffers>
carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl ( size_t )
inlineprivate

私有构造函数,用于限制外部直接创建对象。

参数
size预留参数,可能用于内部初始化。

在文件 Message.h53 行定义.

◆ MessageTmpl() [2/3]

template<size_t MaxNumberOfBuffers>
template<typename... Buffers>
carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl ( size_t size,
SharedBufferView buffer,
Buffers... buffers )
inlineprivate

模板化的构造函数,用于初始化消息对象。

参数
size缓冲区总数(包括传入的和后续参数中的)。
buffer第一个缓冲区(类型为SharedBufferView)。
buffers可变数量的其他缓冲区。
注解
该构造函数通过递归调用自身来处理可变数量的缓冲区参数。

在文件 Message.h62 行定义.

引用了 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_buffer_views, carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_buffers, carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_number_of_buffers, carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_total_size , 以及 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::size().

+ 函数调用图:

◆ MessageTmpl() [3/3]

template<size_t MaxNumberOfBuffers>
template<typename... Buffers>
carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl ( SharedBufferView buf,
Buffers... buffers )
inline

模板化的构造函数,用于创建包含多个缓冲区的消息对象。

参数
buf第一个缓冲区(类型为SharedBufferView)。
buffers可变数量的其他缓冲区。
注解
该构造函数通过递归调用自身(利用模板参数包展开)来处理可变数量的缓冲区参数。 同时,它使用sizeof...(Buffers)来获取传入的缓冲区数量,并加1以包括第一个缓冲区。 在构造之前,会进行静态断言以确保传入的缓冲区数量不超过最大允许值。
异常
编译时断言失败,如果传入的缓冲区数量超过`max_size()`返回的值。

在文件 Message.h82 行定义.

引用了 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_buffer_views, carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_total_size , 以及 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::max_size().

+ 函数调用图:

成员函数说明

◆ empty()

template<size_t MaxNumberOfBuffers>
bool carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::empty ( ) const
inlinenoexcept

检查消息是否为空。

返回
如果消息大小为0,则返回true;否则返回false。

在文件 Message.h98 行定义.

引用了 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::size().

+ 函数调用图:

◆ GetBufferSequence()

template<size_t MaxNumberOfBuffers>
auto carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::GetBufferSequence ( ) const
inline

获取消息的缓冲区序列。

返回
返回一个包含所有缓冲区视图的视图对象(可能是std::vector<boost::asio::const_buffer>或类似类型,具体取决于MakeListView的实现)。 注意,返回的视图包括_total_size的缓冲区视图以及所有传入的缓冲区视图。

在文件 Message.h105 行定义.

引用了 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_buffer_views, carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_number_of_buffers, begin() , 以及 carla::MakeListView().

+ 函数调用图:

◆ max_size()

template<size_t MaxNumberOfBuffers>
static constexpr size_t carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::max_size ( )
inlinestaticconstexpr

获取单个消息中可以包含的缓冲区的最大数量。

返回
返回单个消息中可以包含的缓冲区的最大数量。

在文件 Message.h45 行定义.

被这些函数引用 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl().

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

◆ size()

template<size_t MaxNumberOfBuffers>
auto carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::size ( ) const
inlinenoexcept

获取消息的大小(不包括头部。

返回
返回消息的大小(以字节为单位。

在文件 Message.h92 行定义.

引用了 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_total_size.

被这些函数引用 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::empty() , 以及 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl().

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

类成员变量说明

◆ _buffer_views

template<size_t MaxNumberOfBuffers>
std::array<boost::asio::const_buffer, MaxNumberOfBuffers + 1u> carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_buffer_views
private

存储所有缓冲区视图的数组,包括_total_size的缓冲区视图。 注意,数组大小比_buffers多一个,以容纳_total_size的缓冲区视图。

在文件 Message.h120 行定义.

被这些函数引用 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::GetBufferSequence(), carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl() , 以及 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl().

◆ _buffers

template<size_t MaxNumberOfBuffers>
std::array<SharedBufferView, MaxNumberOfBuffers> carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_buffers
private

存储所有传入的缓冲区对象的数组。

在文件 Message.h117 行定义.

被这些函数引用 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl().

◆ _number_of_buffers

template<size_t MaxNumberOfBuffers>
message_size_type carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_number_of_buffers = 0u
private

缓冲区数量(不包括_total_size的缓冲区)。

在文件 Message.h113 行定义.

被这些函数引用 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::GetBufferSequence() , 以及 carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::MessageTmpl().

◆ _total_size

template<size_t MaxNumberOfBuffers>
message_size_type carla::streaming::detail::tcp::MessageTmpl< MaxNumberOfBuffers >::_total_size = 0u
private

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