Apollo 10.0
自动驾驶开放平台
apollo::cyber::message::ArenaMessageWrapper类 参考

#include <arena_message_wrapper.h>

apollo::cyber::message::ArenaMessageWrapper 的协作图:

Public 成员函数

 ArenaMessageWrapper ()
 
 ArenaMessageWrapper (ArenaManagerBase *arena_manager)
 
virtual ~ArenaMessageWrapper ()
 
void SetVersion (uint64_t version)
 
uint64_t GetVersion () const
 
uint64_t GetMessageAddress () const
 
void * GetData ()
 
bool FillMeta (void *meta, uint64_t size)
 
ArenaMessageWrapperMetaGetMeta ()
 
bool FillExtended (void *extended, uint64_t size)
 
template<typename T >
T * GetExtended ()
 
template<typename MessageT >
MessageT * GetMessage ()
 
template<typename MessageT >
MessageT * SetMessage (const MessageT &message)
 

静态 Public 属性

static const uint64_t kDefaultVersion = 1L
 

详细描述

在文件 arena_message_wrapper.h49 行定义.

构造及析构函数说明

◆ ArenaMessageWrapper() [1/2]

apollo::cyber::message::ArenaMessageWrapper::ArenaMessageWrapper ( )
inline

在文件 arena_message_wrapper.h53 行定义.

53 : arena_manager_(nullptr) {
56 }
struct apollo::cyber::message::ArenaMessageWrapperDataStruct::@1 struct_
struct apollo::cyber::message::ArenaMessageWrapperMeta::@0 struct_

◆ ArenaMessageWrapper() [2/2]

apollo::cyber::message::ArenaMessageWrapper::ArenaMessageWrapper ( ArenaManagerBase arena_manager)
inlineexplicit

在文件 arena_message_wrapper.h58 行定义.

59 : arena_manager_(arena_manager) {
62 }

◆ ~ArenaMessageWrapper()

virtual apollo::cyber::message::ArenaMessageWrapper::~ArenaMessageWrapper ( )
inlinevirtual

在文件 arena_message_wrapper.h64 行定义.

64{}

成员函数说明

◆ FillExtended()

bool apollo::cyber::message::ArenaMessageWrapper::FillExtended ( void *  extended,
uint64_t  size 
)
inline

在文件 arena_message_wrapper.h91 行定义.

91 {
92 if (size > 256) {
93 return false;
94 }
95 memcpy(&data_.struct_.extended_, extended, size);
96 return true;
97 }

◆ FillMeta()

bool apollo::cyber::message::ArenaMessageWrapper::FillMeta ( void *  meta,
uint64_t  size 
)
inline

在文件 arena_message_wrapper.h78 行定义.

78 {
79 if (size > 128) {
80 return false;
81 }
82 memcpy(&data_.struct_.meta_, meta, size);
83 return true;
84 }

◆ GetData()

void * apollo::cyber::message::ArenaMessageWrapper::GetData ( )
inline

在文件 arena_message_wrapper.h76 行定义.

76{ return reinterpret_cast<void*>(data_.bytes_); }

◆ GetExtended()

template<typename T >
T * apollo::cyber::message::ArenaMessageWrapper::GetExtended ( )
inline

在文件 arena_message_wrapper.h100 行定义.

100 {
101 return reinterpret_cast<T*>(data_.struct_.extended_.bytes_);
102 }

◆ GetMessage()

template<typename MessageT >
MessageT * apollo::cyber::message::ArenaMessageWrapper::GetMessage ( )
inline

在文件 arena_message_wrapper.h105 行定义.

105 {
106 // uint64_t base_address =
107 // reinterpret_cast<uint64_t>(arena_manager_->GetBaseAddress());
108 // uint64_t message_address = base_address + data_.struct_.addr_offset_;
109 // return std::shared_ptr<MessageT>(
110 // reinterpret_cast<MessageT*>(GetMessageAddress()));
111 auto msg_ptr = arena_manager_->GetMessage<MessageT>(this);
112 return msg_ptr;
113 }
virtual void * GetMessage(ArenaMessageWrapper *wrapper)=0

◆ GetMessageAddress()

uint64_t apollo::cyber::message::ArenaMessageWrapper::GetMessageAddress ( ) const
inline

在文件 arena_message_wrapper.h71 行定义.

71 {
72 return arena_manager_->GetBaseAddress(this) +
74 }
virtual uint64_t GetBaseAddress(const ArenaMessageWrapper *wrapper)

◆ GetMeta()

ArenaMessageWrapperMeta * apollo::cyber::message::ArenaMessageWrapper::GetMeta ( )
inline

在文件 arena_message_wrapper.h86 行定义.

86 {
87 return reinterpret_cast<ArenaMessageWrapperMeta*>(
88 data_.struct_.meta_.bytes_);
89 }

◆ GetVersion()

uint64_t apollo::cyber::message::ArenaMessageWrapper::GetVersion ( ) const
inline

在文件 arena_message_wrapper.h69 行定义.

69{ return data_.struct_.meta_.struct_.version_; }

◆ SetMessage()

template<typename MessageT >
MessageT * apollo::cyber::message::ArenaMessageWrapper::SetMessage ( const MessageT &  message)
inline

在文件 arena_message_wrapper.h116 行定义.

116 {
117 auto msg_ptr = arena_manager_->SetMessage(this, message);
118 return msg_ptr;
119 }
virtual void * SetMessage(ArenaMessageWrapper *wrapper, const void *message)=0

◆ SetVersion()

void apollo::cyber::message::ArenaMessageWrapper::SetVersion ( uint64_t  version)
inline

在文件 arena_message_wrapper.h66 行定义.

66 {
67 data_.struct_.meta_.struct_.version_ = version;
68 }

类成员变量说明

◆ kDefaultVersion

const uint64_t apollo::cyber::message::ArenaMessageWrapper::kDefaultVersion = 1L
static

在文件 arena_message_wrapper.h51 行定义.


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