一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
更多...
#include <Buffer.h>
carla::Buffer 的协作图:Public 类型 | |
成员类型 | |
| using | value_type = unsigned char |
| using | size_type = uint32_t |
| using | iterator = value_type * |
| using | const_iterator = const value_type * |
Public 成员函数 | |
构造与析构 | |
| Buffer ()=default | |
| 创建一个空的缓冲区。 更多... | |
| Buffer (size_type size) | |
| 创建一个分配了 size字节的缓冲区。 更多... | |
| Buffer (uint64_t size) | |
| 创建一个分配了 size字节的缓冲区。\ifile "/github/workspace/LibCarla/source/carla/Buffer.h" 更多... | |
| template<typename T > | |
| Buffer (const T &source) | |
| 将 source复制到此缓冲区中。分配所需的内存。 更多... | |
| Buffer (const value_type *data, size_type size) | |
| Buffer (const value_type *data, uint64_t size) | |
| 创建一个分配了 size字节的缓冲区。\ifile "/github/workspace/LibCarla/source/carla/Buffer.h" 更多... | |
| Buffer (const Buffer &)=delete | |
| Buffer (Buffer &&rhs) noexcept | |
| ~Buffer () | |
任务赋值 | |
| Buffer & | operator= (const Buffer &)=delete |
| Buffer & | operator= (Buffer &&rhs) noexcept |
数据访问 | |
| const value_type & | operator[] (size_t i) const |
| 访问位置 i处的字节 更多... | |
| value_type & | operator[] (size_t i) |
| Access the byte at position i. 更多... | |
| const value_type * | data () const noexcept |
| 直接访问分配的内存,如果没有分配内存则返回 nullptr。 更多... | |
| value_type * | data () noexcept |
| Direct access to the allocated memory or nullptr if no memory is allocated. 更多... | |
| boost::asio::const_buffer | cbuffer () const noexcept |
| 从这个缓冲区创建一个boost::asio::buffer。 更多... | |
| boost::asio::const_buffer | buffer () const noexcept |
| 从这个缓冲区创建一个boost::asio::buffer。 更多... | |
| boost::asio::mutable_buffer | buffer () noexcept |
| 从这个缓冲区创建一个boost::asio::buffer。 更多... | |
迭代器 | |
| const_iterator | cbegin () const noexcept |
| const_iterator | begin () const noexcept |
| iterator | begin () noexcept |
| const_iterator | cend () const noexcept |
| const_iterator | end () const noexcept |
| iterator | end () noexcept |
修改器 | |
| void | reset (size_type size) |
| 重置缓冲区的大小。如果容量不足,当前内存将被丢弃,并分配一个新的大小为 size的内存块。 allocated. 更多... | |
| void | reset (uint64_t size) |
| 重置缓冲区的大小。如果容量不足,当前内存将被丢弃,并分配一个新的大小为 size的内存块。 allocated. 更多... | |
| void | resize (uint64_t size) |
| 调整缓冲区的大小。如果容量不足,将分配一个新的大小为 size的内存块,并复制数据。 更多... | |
| std::unique_ptr< value_type[]> | pop () noexcept |
| 释放此缓冲区的内容,并将其大小和容量设置为零。 更多... | |
| void | clear () noexcept |
| 清除此缓冲区的内容,并将其大小和容量设置为零。 删除已分配的内存。 更多... | |
copy_from | |
| template<typename T > | |
| void | copy_from (const T &source) |
| 将 source复制到此缓冲区。如果需要,则分配内存。 更多... | |
| void | copy_from (const value_type *data, size_type size) |
| Copy size bytes of the memory pointed by data into this buffer. 更多... | |
| void | copy_from (size_type offset, const Buffer &rhs) |
| 将 source复制到此缓冲区,在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。 更多... | |
| template<typename T > | |
| std::enable_if< boost::asio::is_const_buffer_sequence< T >::value >::type | copy_from (size_type offset, const T &source) |
| 将 source复制到此缓冲区,在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。 更多... | |
| template<typename T > | |
| std::enable_if<!boost::asio::is_const_buffer_sequence< T >::value >::type | copy_from (size_type offset, const T &source) |
| 将 source复制到此缓冲区,在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。 更多... | |
| void | copy_from (size_type offset, const value_type *data, size_type size) |
| 将 data指向的内存中的 size字节复制到此缓冲区, 在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。 更多... | |
Private 成员函数 | |
| void | ReuseThisBuffer () |
Private 属性 | |
| size_type | _capacity = 0u |
| std::unique_ptr< value_type[]> | _data = nullptr |
| std::weak_ptr< BufferPool > | _parent_pool |
| size_type | _size = 0u |
友元 | |
| class | BufferPool |
| class | BufferView |
容量 | |
| bool | empty () const noexcept |
| size_type | size () const noexcept |
| size_type | capacity () const noexcept |
| static constexpr size_type | max_size () noexcept |
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
这是一个仅可移动的类型,设计为按值传递时成本较低。如果缓冲区 从BufferPool中检索,则在销毁时内存会自动推回到池中。
在文件 carla/Buffer.h 第 52 行定义.
| using carla::Buffer::const_iterator = const value_type * |
在文件 carla/Buffer.h 第 67 行定义.
| using carla::Buffer::iterator = value_type * |
在文件 carla/Buffer.h 第 65 行定义.
| using carla::Buffer::size_type = uint32_t |
在文件 carla/Buffer.h 第 63 行定义.
| using carla::Buffer::value_type = unsigned char |
在文件 carla/Buffer.h 第 61 行定义.
|
default |
创建一个空的缓冲区。
|
inlineexplicit |
创建一个分配了 size字节的缓冲区。
在文件 carla/Buffer.h 第 82 行定义.
|
inlineexplicit |
创建一个分配了 size字节的缓冲区。\ifile "/github/workspace/LibCarla/source/carla/Buffer.h"
在文件 carla/Buffer.h 第 91 行定义.
引用了 max_size(), size() , 以及 carla::throw_exception().
函数调用图:
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
创建一个分配了 size字节的缓冲区。\ifile "/github/workspace/LibCarla/source/carla/Buffer.h"
在文件 carla/Buffer.h 第 117 行定义.
引用了 max_size(), size() , 以及 carla::throw_exception().
函数调用图:
|
delete |
|
inlinenoexcept |
在文件 carla/Buffer.h 第 131 行定义.
|
inline |
|
inlinenoexcept |
在文件 carla/Buffer.h 第 265 行定义.
引用了 cbegin().
被这些函数引用 carla::sensor::RawData::begin(), end() , 以及 carla::operator==().
函数调用图:
这是这个函数的调用关系图:
|
inlinenoexcept |
在文件 carla/Buffer.h 第 270 行定义.
引用了 _data.
|
inlinenoexcept |
从这个缓冲区创建一个boost::asio::buffer。
在文件 carla/Buffer.h 第 213 行定义.
引用了 cbuffer().
被这些函数引用 carla::multigpu::IncomingMessage::buffer(), carla::streaming::detail::tcp::IncomingMessage::buffer() , 以及 copy_from().
函数调用图:
这是这个函数的调用关系图:
|
inlinenoexcept |
从这个缓冲区创建一个boost::asio::buffer。
在文件 carla/Buffer.h 第 219 行定义.
函数调用图:
|
inlinenoexcept |
|
inlinenoexcept |
在文件 carla/Buffer.h 第 260 行定义.
引用了 _data.
被这些函数引用 begin(), carla::BufferView::begin(), cend() , 以及 carla::BufferView::cend().
这是这个函数的调用关系图:
|
inlinenoexcept |
从这个缓冲区创建一个boost::asio::buffer。
在文件 carla/Buffer.h 第 207 行定义.
被这些函数引用 buffer().
函数调用图:
这是这个函数的调用关系图:
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
将 source复制到此缓冲区。如果需要,则分配内存。
在文件 carla/Buffer.h 第 367 行定义.
引用了 copy_from().
被这些函数引用 Buffer(), copy_from(), resize(), carla::sensor::s11n::CAMDataSerializer::Serialize(), carla::sensor::s11n::CustomV2XDataSerializer::Serialize(), carla::sensor::s11n::LidarSerializer::Serialize(), carla::sensor::s11n::RadarSerializer::Serialize(), carla::sensor::s11n::SemanticLidarSerializer::Serialize() , 以及 TEST().
函数调用图:
这是这个函数的调用关系图:
|
inline |
Copy size bytes of the memory pointed by data into this buffer.
Allocates memory if necessary.
在文件 carla/Buffer.h 第 375 行定义.
引用了 copy_from(), data() , 以及 size().
函数调用图:将 source复制到此缓冲区,在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。
在文件 carla/Buffer.h 第 383 行定义.
引用了 buffer() , 以及 copy_from().
函数调用图:
|
inline |
将 source复制到此缓冲区,在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。
在文件 carla/Buffer.h 第 392 行定义.
引用了 buffer(), DEBUG_ASSERT, DEBUG_ONLY, reset() , 以及 size().
函数调用图:
|
inline |
将 source复制到此缓冲区,在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。
在文件 carla/Buffer.h 第 408 行定义.
引用了 copy_from().
函数调用图:
|
inline |
将 data指向的内存中的 size字节复制到此缓冲区, 在前面留出 offset字节未初始化的空间。 如果需要,则分配内存。
在文件 carla/Buffer.h 第 430 行定义.
引用了 copy_from(), data() , 以及 size().
函数调用图:
|
inlinenoexcept |
直接访问分配的内存,如果没有分配内存则返回 nullptr。
在文件 carla/Buffer.h 第 193 行定义.
引用了 _data.
被这些函数引用 util::buffer::as_string(), buffer(), Buffer(), carla::BufferView::cbegin(), cbuffer(), carla::BufferView::cbuffer(), copy_from(), carla::BufferView::data(), carla::sensor::s11n::SensorHeaderSerializer::Deserialize(), FAsyncDataStreamTmpl::GetSensorTransform(), FAsyncDataStreamTmpl::GetSensorType(), carla::BufferView::operator[](), carla::multigpu::SecondaryCommands::process_command(), resize(), FAsyncDataStreamTmpl::SetFrameNumber(), TEST(), util::buffer::to_hex_string() , 以及 carla::MsgPack::UnPack().
这是这个函数的调用关系图:
|
inlinenoexcept |
Direct access to the allocated memory or nullptr if no memory is allocated.
在文件 carla/Buffer.h 第 200 行定义.
引用了 _data.
|
inlinenoexcept |
在文件 carla/Buffer.h 第 232 行定义.
引用了 _size.
|
inlinenoexcept |
在文件 carla/Buffer.h 第 280 行定义.
引用了 cend().
被这些函数引用 carla::sensor::RawData::end() , 以及 carla::operator==().
函数调用图:
这是这个函数的调用关系图:
|
inlinenoexcept |
|
inlinestaticconstexprnoexcept |
在文件 carla/Buffer.h 第 159 行定义.
引用了 _capacity, _data, _parent_pool , 以及 _size.
|
inline |
|
inline |
|
inlinenoexcept |
|
inline |
重置缓冲区的大小。如果容量不足,当前内存将被丢弃,并分配一个新的大小为 size的内存块。 allocated.
在文件 carla/Buffer.h 第 300 行定义.
引用了 _capacity, _data, _size, carla::log_debug() , 以及 size().
被这些函数引用 carla::multigpu::IncomingMessage::buffer(), carla::streaming::detail::tcp::IncomingMessage::buffer(), copy_from(), reset(), resize() , 以及 TEST().
函数调用图:
这是这个函数的调用关系图:
|
inline |
重置缓冲区的大小。如果容量不足,当前内存将被丢弃,并分配一个新的大小为 size的内存块。 allocated.
在文件 carla/Buffer.h 第 314 行定义.
引用了 max_size(), reset(), size() , 以及 carla::throw_exception().
函数调用图:
|
inline |
调整缓冲区的大小。如果容量不足,将分配一个新的大小为 size的内存块,并复制数据。
在文件 carla/Buffer.h 第 325 行定义.
引用了 _capacity, _data, _size, copy_from(), data(), reset() , 以及 size().
函数调用图:
|
private |
|
inlinenoexcept |
在文件 carla/Buffer.h 第 237 行定义.
引用了 _size.
被这些函数引用 util::buffer::as_string(), buffer(), Buffer(), cbuffer(), carla::BufferView::cbuffer(), cend(), carla::BufferView::cend(), copy_from(), carla::BufferView::empty(), end(), make_special_message(), carla::operator<<(), carla::operator==(), reset(), resize(), carla::BufferView::size(), TEST(), util::buffer::to_hex_string() , 以及 carla::MsgPack::UnPack().
这是这个函数的调用关系图:
|
friend |
在文件 carla/Buffer.h 第 444 行定义.
|
friend |
在文件 carla/Buffer.h 第 447 行定义.
|
private |
在文件 carla/Buffer.h 第 457 行定义.
被这些函数引用 capacity(), operator=(), pop(), reset(), resize() , 以及 ~Buffer().
|
private |
在文件 carla/Buffer.h 第 460 行定义.
被这些函数引用 begin(), cbegin(), data(), operator=(), operator[](), pop(), reset() , 以及 resize().
|
private |
在文件 carla/Buffer.h 第 450 行定义.
被这些函数引用 operator=(), carla::BufferPool::Pop() , 以及 ReuseThisBuffer().
|
private |
在文件 carla/Buffer.h 第 454 行定义.
被这些函数引用 empty(), operator=(), pop(), reset(), resize() , 以及 size().