16#ifndef CYBER_MESSAGE_ARENA_MANAGER_BASE_H_
17#define CYBER_MESSAGE_ARENA_MANAGER_BASE_H_
38 const void* message) = 0;
42 return std::make_shared<message::ArenaMessageWrapper>(
this);
45 template <
typename MessageT>
47 void* msg =
SetMessage(wrapper,
reinterpret_cast<const void*
>(&message));
48 return reinterpret_cast<MessageT*
>(msg);
51 template <
typename MessageT>
54 return reinterpret_cast<MessageT*
>(msg);
virtual void * SetMessage(ArenaMessageWrapper *wrapper, const void *message)=0
std::shared_ptr< message::ArenaMessageWrapper > CreateMessageWrapper()
MessageT * GetMessage(ArenaMessageWrapper *wrapper)
virtual uint64_t GetBaseAddress(const ArenaMessageWrapper *wrapper)
virtual void * GetMessage(ArenaMessageWrapper *wrapper)=0
virtual ~ArenaManagerBase()
MessageT * SetMessage(ArenaMessageWrapper *wrapper, const MessageT &message)