Apollo 10.0
自动驾驶开放平台
apollo::bridge::BridgeBuffer< T > 模板类 参考

#include <bridge_buffer.h>

apollo::bridge::BridgeBuffer< T > 的协作图:

Public 成员函数

 BridgeBuffer ()
 
 BridgeBuffer (size_t size)
 
virtual ~BridgeBuffer ()
 
 operator T* ()
 
void reset (size_t size)
 
size_t size () const
 
size_t capacity () const
 
void write (size_t index, const T *data, size_t size)
 

详细描述

template<typename T>
class apollo::bridge::BridgeBuffer< T >

在文件 bridge_buffer.h25 行定义.

构造及析构函数说明

◆ BridgeBuffer() [1/2]

template<typename T >
apollo::bridge::BridgeBuffer< T >::BridgeBuffer ( )

在文件 bridge_buffer.cc27 行定义.

27{}

◆ BridgeBuffer() [2/2]

template<typename T >
apollo::bridge::BridgeBuffer< T >::BridgeBuffer ( size_t  size)
explicit

在文件 bridge_buffer.cc30 行定义.

30 {
31 reset(size);
32}

◆ ~BridgeBuffer()

template<typename T >
apollo::bridge::BridgeBuffer< T >::~BridgeBuffer ( )
virtual

在文件 bridge_buffer.cc35 行定义.

35 {
36 std::lock_guard<std::mutex> lg(mutex_);
37 if (buf_) {
38 delete[] buf_;
39 }
40 buf_ = nullptr;
41 size_ = 0;
42 capacity_ = 0;
43}

成员函数说明

◆ capacity()

template<typename T >
size_t apollo::bridge::BridgeBuffer< T >::capacity ( ) const
inline

在文件 bridge_buffer.h34 行定义.

34{ return capacity_; }

◆ operator T*()

template<typename T >
apollo::bridge::BridgeBuffer< T >::operator T* ( )

在文件 bridge_buffer.cc46 行定义.

46 {
47 return buf_;
48}

◆ reset()

template<typename T >
void apollo::bridge::BridgeBuffer< T >::reset ( size_t  size)

在文件 bridge_buffer.cc51 行定义.

51 {
52 std::lock_guard<std::mutex> lg(mutex_);
53 if (capacity_ < size) {
54 if (buf_) {
55 delete[] buf_;
56 }
57 capacity_ = size;
58 buf_ = new T[capacity_];
59 }
60 size_ = size;
61 memset(buf_, 0, sizeof(T) * capacity_);
62}

◆ size()

template<typename T >
size_t apollo::bridge::BridgeBuffer< T >::size ( ) const
inline

在文件 bridge_buffer.h33 行定义.

33{ return size_; }

◆ write()

template<typename T >
void apollo::bridge::BridgeBuffer< T >::write ( size_t  index,
const T *  data,
size_t  size 
)

在文件 bridge_buffer.cc65 行定义.

65 {
66 std::lock_guard<std::mutex> lg(mutex_);
67 reset(size + index);
68 T *p = buf_ + index;
69 memcpy(p, data, size);
70}

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