16#ifndef CYBER_MESSAGE_ARENA_MESSAGE_WRAPPER_H_
17#define CYBER_MESSAGE_ARENA_MESSAGE_WRAPPER_H_
59 : arena_manager_(arena_manager) {
104 template <
typename MessageT>
111 auto msg_ptr = arena_manager_->
GetMessage<MessageT>(
this);
115 template <
typename MessageT>
117 auto msg_ptr = arena_manager_->
SetMessage(
this, message);
137 std::shared_ptr<void*> message_;
virtual void * SetMessage(ArenaMessageWrapper *wrapper, const void *message)=0
virtual uint64_t GetBaseAddress(const ArenaMessageWrapper *wrapper)
virtual void * GetMessage(ArenaMessageWrapper *wrapper)=0
uint64_t GetVersion() const
ArenaMessageWrapper(ArenaManagerBase *arena_manager)
void SetVersion(uint64_t version)
MessageT * SetMessage(const MessageT &message)
virtual ~ArenaMessageWrapper()
bool FillExtended(void *extended, uint64_t size)
ArenaMessageWrapperMeta * GetMeta()
bool FillMeta(void *meta, uint64_t size)
static const uint64_t kDefaultVersion
uint64_t GetMessageAddress() const
struct apollo::cyber::message::ArenaMessageWrapperDataStruct::@1 struct_
union ArenaMessageWrapperExtended extended_
union ArenaMessageWrapperMeta meta_