17 #ifndef CYBER_TRANSPORT_TRANSMITTER_SHM_TRANSMITTER_H_ 18 #define CYBER_TRANSPORT_TRANSMITTER_SHM_TRANSMITTER_H_ 64 channel_id_(attr.channel_id()),
100 template <
typename M>
109 if (!segment_->AcquireBlockToWrite(msg_size, &wb)) {
110 AERROR <<
"acquire block failed.";
116 AERROR <<
"serialize to array failed.";
117 segment_->ReleaseWrittenBlock(wb);
122 char* msg_info_addr =
reinterpret_cast<char*
>(wb.
buf) + msg_size;
124 AERROR <<
"serialize message info failed.";
125 segment_->ReleaseWrittenBlock(wb);
129 segment_->ReleaseWrittenBlock(wb);
133 ADEBUG <<
"Writing sharedmem message: " 135 <<
" to block: " << wb.
index;
136 return notifier_->
Notify(readable_info);
143 #endif // CYBER_TRANSPORT_TRANSMITTER_SHM_TRANSMITTER_H_ void set_msg_info_size(uint64_t msg_info_size)
Definition: block.h:38
bool enabled_
Definition: endpoint.h:45
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Definition: readable_info.h:32
ShmTransmitter(const RoleAttributes &attr)
Definition: shm_transmitter.h:61
std::enable_if< HasByteSize< T >::value, int >::type ByteSize(const T &message)
Definition: message_traits.h:123
virtual bool Notify(const ReadableInfo &info)=0
Definition: notifier_base.h:31
void set_msg_size(uint64_t msg_size)
Definition: block.h:35
Definition: shm_transmitter.h:39
uint8_t * buf
Definition: segment.h:39
static std::string GetChannelById(uint64_t id)
virtual ~ShmTransmitter()
Definition: shm_transmitter.h:70
std::enable_if< HasSerializeToArray< T >::value, bool >::type SerializeToArray(const T &message, void *data, int size)
Definition: message_traits.h:189
void Disable() override
Definition: shm_transmitter.h:86
std::shared_ptr< Segment > SegmentPtr
Definition: segment.h:34
#define ADEBUG
Definition: log.h:41
void Enable() override
Definition: shm_transmitter.h:75
static NotifierPtr CreateNotifier()
static const std::size_t kSize
Definition: message_info.h:61
bool Transmit(const MessagePtr &msg, const MessageInfo &msg_info) override
Definition: shm_transmitter.h:95
Definition: message_info.h:30
bool SerializeTo(std::string *dst) const
std::size_t Hash(const std::string &key)
Definition: util.h:27
uint32_t index
Definition: segment.h:37
static SegmentPtr CreateSegment(uint64_t channel_id)
#define AERROR
Definition: log.h:44
Definition: transmitter.h:36
Block * block
Definition: segment.h:38
std::shared_ptr< M > MessagePtr
Definition: shm_transmitter.h:41