Apollo 10.0
自动驾驶开放平台
apollo::cyber::message 命名空间参考

class  ArenaManagerBase
 
class  ArenaMessageWrapper
 
union  ArenaMessageWrapperDataStruct
 
union  ArenaMessageWrapperExtended
 
union  ArenaMessageWrapperMeta
 
class  ErrorCollector
 
class  MessageHeader
 
class  ProtobufFactory
 
class  PyMessageWrap
 
struct  RawMessage
 

函数

 DEFINE_TYPE_TRAIT (HasSerializeToArenaMessageWrapper, SerializeToArenaMessageWrapper) template< typename T > class HasSerializer
 
template<typename T , typename std::enable_if< HasType< T >::value &&std::is_member_function_pointer< decltype(&T::TypeName)>::value, bool >::type = 0>
std::string MessageType (const T &message)
 
template<typename T , typename std::enable_if< HasType< T >::value &&!std::is_member_function_pointer< decltype(&T::TypeName)>::value, bool >::type = 0>
std::string MessageType ()
 
template<typename T >
std::enable_if< HasSetType< T >::value, void >::type SetTypeName (const std::string &type_name, T *message)
 
template<typename T >
std::enable_if<!HasSetType< T >::value, void >::type SetTypeName (const std::string &type_name, T *message)
 
template<typename T >
std::enable_if< HasByteSize< T >::value, int >::type ByteSize (const T &message)
 
template<typename T >
std::enable_if<!HasByteSize< T >::value, int >::type ByteSize (const T &message)
 
template<typename T >
int FullByteSize (const T &message)
 
template<typename T >
std::enable_if< HasParseFromArenaMessageWrapper< T >::value, bool >::type ParseFromArenaMessageWrapper (ArenaMessageWrapper *wrapper, T *message, T **message_ptr)
 
template<typename T , typename std::enable_if< !HasParseFromArenaMessageWrapper< T >::value &&!std::is_base_of< google::protobuf::Message, T >::value, bool >::type = 0>
bool ParseFromArenaMessageWrapper (ArenaMessageWrapper *wrapper, T *message, T **message_ptr)
 
template<typename T >
std::enable_if< HasParseFromArray< T >::value, bool >::type ParseFromArray (const void *data, int size, T *message)
 
template<typename T >
std::enable_if<!HasParseFromArray< T >::value, bool >::type ParseFromArray (const void *data, int size, T *message)
 
template<typename T >
std::enable_if< HasParseFromString< T >::value, bool >::type ParseFromString (const std::string &str, T *message)
 
template<typename T >
std::enable_if<!HasParseFromString< T >::value, bool >::type ParseFromString (const std::string &str, T *message)
 
template<typename T >
std::enable_if< HasParseFromArray< T >::value, bool >::type ParseFromHC (const void *data, int size, T *message)
 
template<typename T >
std::enable_if<!HasParseFromArray< T >::value, bool >::type ParseFromHC (const void *data, int size, T *message)
 
template<typename T >
std::enable_if< HasSerializeToArenaMessageWrapper< T >::value, bool >::type SerializeToArenaMessageWrapper (const T &message, ArenaMessageWrapper *wrapper, T **message_ptr)
 
template<typename T , typename std::enable_if< !HasSerializeToArenaMessageWrapper< T >::value &&!std::is_base_of< google::protobuf::Message, T >::value, bool >::type = 0>
bool SerializeToArenaMessageWrapper (const T &message, ArenaMessageWrapper *wrapper, T **message_ptr)
 
template<typename T >
std::enable_if< HasSerializeToArray< T >::value, bool >::type SerializeToArray (const T &message, void *data, int size)
 
template<typename T >
std::enable_if<!HasSerializeToArray< T >::value, bool >::type SerializeToArray (const T &message, void *data, int size)
 
template<typename T >
std::enable_if< HasSerializeToString< T >::value, bool >::type SerializeToString (const T &message, std::string *str)
 
template<typename T >
std::enable_if<!HasSerializeToString< T >::value, bool >::type SerializeToString (const T &message, std::string *str)
 
template<typename T >
std::enable_if< HasSerializeToArray< T >::value, bool >::type SerializeToHC (const T &message, void *data, int size)
 
template<typename T >
std::enable_if<!HasSerializeToArray< T >::value, bool >::type SerializeToHC (const T &message, void *data, int size)
 
template<typename T , typename std::enable_if< HasGetDescriptorString< T >::value, bool >::type = 0>
void GetDescriptorString (const std::string &type, std::string *desc_str)
 
template<typename MessageT , typename std::enable_if< !std::is_base_of< google::protobuf::Message, MessageT >::value, int >::type = 0>
void GetDescriptorString (const MessageT &message, std::string *desc_str)
 
template<typename T , typename Descriptor , typename std::enable_if< HasFullName< Descriptor >::value, bool >::type = 0>
std::string GetFullName ()
 
template<typename T , typename std::enable_if< HasDescriptor< T >::value &&!std::is_base_of< google::protobuf::Message, T >::value, bool >::type = 0>
std::string GetMessageName ()
 
template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, int >::type = 0>
std::string MessageType (const MessageT &message)
 
template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, int >::type = 0>
bool RegisterMessage (const MessageT &message)
 
template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, bool >::type = true>
bool SerializeToArenaMessageWrapper (const MessageT &message, ArenaMessageWrapper *wrapper, MessageT **message_ptr)
 
template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, bool >::type = true>
bool ParseFromArenaMessageWrapper (ArenaMessageWrapper *wrapper, MessageT *message, MessageT **message_ptr)
 
bool SerializeToArray (const PyMessageWrap &message, void *data, int size)
 
bool ParseFromArray (const void *data, int size, PyMessageWrap *message)
 
int ByteSize (const PyMessageWrap &message)
 
bool SerializeToArray (const RawMessage &message, void *data, int size)
 
bool ParseFromArray (const void *data, int size, RawMessage *message)
 
int ByteSize (const RawMessage &message)
 
bool SerializeToArenaMessageWrapper (const RawMessage &message, ArenaMessageWrapper *wrapper)
 
bool ParseFromArenaMessageWrapper (ArenaMessageWrapper *wrapper, RawMessage *message)
 

变量

const char *const PY_MESSAGE_FULLNAME = "apollo.cyber.message.PyMessage"
 

函数说明

◆ ByteSize() [1/4]

int apollo::cyber::message::ByteSize ( const PyMessageWrap message)
inline

在文件 py_message_traits.h40 行定义.

40{ return message.ByteSize(); }

◆ ByteSize() [2/4]

int apollo::cyber::message::ByteSize ( const RawMessage message)
inline

在文件 raw_message_traits.h40 行定义.

40{ return message.ByteSize(); }

◆ ByteSize() [3/4]

template<typename T >
std::enable_if< HasByteSize< T >::value, int >::type apollo::cyber::message::ByteSize ( const T &  message)

在文件 message_traits.h128 行定义.

129 {
130 return static_cast<int>(message.ByteSizeLong());
131}

◆ ByteSize() [4/4]

template<typename T >
std::enable_if<!HasByteSize< T >::value, int >::type apollo::cyber::message::ByteSize ( const T &  message)

在文件 message_traits.h134 行定义.

135 {
136 (void)message;
137 return -1;
138}

◆ DEFINE_TYPE_TRAIT()

apollo::cyber::message::DEFINE_TYPE_TRAIT ( HasSerializeToArenaMessageWrapper  ,
SerializeToArenaMessageWrapper   
)

在文件 message_traits.h45 行定义.

50 {
51 public:
52 static constexpr bool value =
53 HasSerializeToString<T>::value && HasParseFromString<T>::value &&
54 HasSerializeToArray<T>::value && HasParseFromArray<T>::value;
55};

◆ FullByteSize()

template<typename T >
int apollo::cyber::message::FullByteSize ( const T &  message)

在文件 message_traits.h141 行定义.

141 {
142 int content_size = ByteSize(message);
143 if (content_size < 0) {
144 return content_size;
145 }
146 return content_size + static_cast<int>(sizeof(MessageHeader));
147}
std::enable_if< HasByteSize< T >::value, int >::type ByteSize(const T &message)

◆ GetDescriptorString() [1/2]

template<typename MessageT , typename std::enable_if< !std::is_base_of< google::protobuf::Message, MessageT >::value, int >::type = 0>
void apollo::cyber::message::GetDescriptorString ( const MessageT &  message,
std::string *  desc_str 
)
inline

在文件 message_traits.h301 行定义.

301{}

◆ GetDescriptorString() [2/2]

template<typename T , typename std::enable_if< HasGetDescriptorString< T >::value, bool >::type = 0>
void apollo::cyber::message::GetDescriptorString ( const std::string &  type,
std::string *  desc_str 
)
inline

在文件 message_traits.h286 行定义.

286 {
287 T::GetDescriptorString(type, desc_str);
288}

◆ GetFullName()

template<typename T , typename Descriptor , typename std::enable_if< HasFullName< Descriptor >::value, bool >::type = 0>
std::string apollo::cyber::message::GetFullName ( )

在文件 message_traits.h306 行定义.

306 {
307 return T::descriptor()->full_name();
308}

◆ GetMessageName()

template<typename T , typename std::enable_if< HasDescriptor< T >::value &&!std::is_base_of< google::protobuf::Message, T >::value, bool >::type = 0>
std::string apollo::cyber::message::GetMessageName ( )

在文件 message_traits.h322 行定义.

322 {
323 return GetFullName<T, decltype(*T::descriptor())>();
324}

◆ MessageType() [1/3]

template<typename T , typename std::enable_if< HasType< T >::value &&!std::is_member_function_pointer< decltype(&T::TypeName)>::value, bool >::type = 0>
std::string apollo::cyber::message::MessageType ( )
inline

在文件 message_traits.h93 行定义.

93 {
94 return T::TypeName();
95}

◆ MessageType() [2/3]

template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, int >::type = 0>
std::string apollo::cyber::message::MessageType ( const MessageT &  message)

在文件 protobuf_traits.h43 行定义.

43 {
44 return message.GetDescriptor()->full_name();
45}

◆ MessageType() [3/3]

template<typename T , typename std::enable_if< HasType< T >::value &&std::is_member_function_pointer< decltype(&T::TypeName)>::value, bool >::type = 0>
std::string apollo::cyber::message::MessageType ( const T &  message)

在文件 message_traits.h66 行定义.

66 {
67 return message.TypeName();
68}

◆ ParseFromArenaMessageWrapper() [1/4]

template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, bool >::type = true>
bool apollo::cyber::message::ParseFromArenaMessageWrapper ( ArenaMessageWrapper wrapper,
MessageT *  message,
MessageT **  message_ptr 
)

在文件 protobuf_traits.h88 行定义.

89 {
90 *message_ptr = wrapper->GetMessage<MessageT>();
91 // message->CopyFrom(*message_ptr);
92 return true;
93}

◆ ParseFromArenaMessageWrapper() [2/4]

bool apollo::cyber::message::ParseFromArenaMessageWrapper ( ArenaMessageWrapper wrapper,
RawMessage message 
)
inline

在文件 raw_message_traits.h47 行定义.

48 {
49 return false;
50}

◆ ParseFromArenaMessageWrapper() [3/4]

template<typename T >
std::enable_if< HasParseFromArenaMessageWrapper< T >::value, bool >::type apollo::cyber::message::ParseFromArenaMessageWrapper ( ArenaMessageWrapper wrapper,
T *  message,
T **  message_ptr 
)

在文件 message_traits.h151 行定义.

152 {
153 return message->ParseFromArenaMessageWrapper(wrapper, message_ptr);
154}

◆ ParseFromArenaMessageWrapper() [4/4]

template<typename T , typename std::enable_if< !HasParseFromArenaMessageWrapper< T >::value &&!std::is_base_of< google::protobuf::Message, T >::value, bool >::type = 0>
bool apollo::cyber::message::ParseFromArenaMessageWrapper ( ArenaMessageWrapper wrapper,
T *  message,
T **  message_ptr 
)

在文件 message_traits.h161 行定义.

162 {
163 (void)wrapper;
164 (void)message;
165 (void)message_ptr;
166 return false;
167}

◆ ParseFromArray() [1/4]

bool apollo::cyber::message::ParseFromArray ( const void *  data,
int  size,
PyMessageWrap message 
)
inline

在文件 py_message_traits.h36 行定义.

36 {
37 return message->ParseFromArray(data, size);
38}
bool ParseFromArray(const void *data, int size)
Definition py_message.h:78

◆ ParseFromArray() [2/4]

bool apollo::cyber::message::ParseFromArray ( const void *  data,
int  size,
RawMessage message 
)
inline

在文件 raw_message_traits.h36 行定义.

36 {
37 return message->ParseFromArray(data, size);
38}
bool ParseFromArray(const void *data, int size)
Definition raw_message.h:90

◆ ParseFromArray() [3/4]

template<typename T >
std::enable_if< HasParseFromArray< T >::value, bool >::type apollo::cyber::message::ParseFromArray ( const void *  data,
int  size,
T *  message 
)

在文件 message_traits.h170 行定义.

171 {
172 return message->ParseFromArray(data, size);
173}

◆ ParseFromArray() [4/4]

template<typename T >
std::enable_if<!HasParseFromArray< T >::value, bool >::type apollo::cyber::message::ParseFromArray ( const void *  data,
int  size,
T *  message 
)

在文件 message_traits.h177 行定义.

177 {
178 return false;
179}

◆ ParseFromHC() [1/2]

template<typename T >
std::enable_if< HasParseFromArray< T >::value, bool >::type apollo::cyber::message::ParseFromHC ( const void *  data,
int  size,
T *  message 
)

在文件 message_traits.h194 行定义.

195 {
196 const auto header_size = sizeof(MessageHeader);
197 RETURN_VAL_IF(size < (int)header_size, false);
198 const MessageHeader* header = static_cast<const MessageHeader*>(data);
199 RETURN_VAL_IF((size - header_size) < header->content_size(), false);
200 SetTypeName(header->msg_type(), message);
201 return message->ParseFromArray(
202 static_cast<const void*>(static_cast<const char*>(data) + header_size),
203 header->content_size());
204}
#define RETURN_VAL_IF(condition, val)
Definition log.h:114
std::enable_if< HasSetType< T >::value, void >::type SetTypeName(const std::string &type_name, T *message)

◆ ParseFromHC() [2/2]

template<typename T >
std::enable_if<!HasParseFromArray< T >::value, bool >::type apollo::cyber::message::ParseFromHC ( const void *  data,
int  size,
T *  message 
)

在文件 message_traits.h207 行定义.

208 {
209 return false;
210}

◆ ParseFromString() [1/2]

template<typename T >
std::enable_if< HasParseFromString< T >::value, bool >::type apollo::cyber::message::ParseFromString ( const std::string &  str,
T *  message 
)

在文件 message_traits.h183 行定义.

183 {
184 return message->ParseFromString(str);
185}

◆ ParseFromString() [2/2]

template<typename T >
std::enable_if<!HasParseFromString< T >::value, bool >::type apollo::cyber::message::ParseFromString ( const std::string &  str,
T *  message 
)

在文件 message_traits.h189 行定义.

189 {
190 return false;
191}

◆ RegisterMessage()

template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, int >::type = 0>
bool apollo::cyber::message::RegisterMessage ( const MessageT &  message)

在文件 protobuf_traits.h69 行定义.

69 {
70 return ProtobufFactory::Instance()->RegisterMessage(message);
71}

◆ SerializeToArenaMessageWrapper() [1/4]

template<typename MessageT , typename std::enable_if< std::is_base_of< google::protobuf::Message, MessageT >::value, bool >::type = true>
bool apollo::cyber::message::SerializeToArenaMessageWrapper ( const MessageT &  message,
ArenaMessageWrapper wrapper,
MessageT **  message_ptr 
)

在文件 protobuf_traits.h77 行定义.

79 {
80 *message_ptr = wrapper->SetMessage(message);
81 return true;
82}
MessageT * SetMessage(const MessageT &message)

◆ SerializeToArenaMessageWrapper() [2/4]

bool apollo::cyber::message::SerializeToArenaMessageWrapper ( const RawMessage message,
ArenaMessageWrapper wrapper 
)
inline

在文件 raw_message_traits.h42 行定义.

43 {
44 return false;
45}

◆ SerializeToArenaMessageWrapper() [3/4]

template<typename T >
std::enable_if< HasSerializeToArenaMessageWrapper< T >::value, bool >::type apollo::cyber::message::SerializeToArenaMessageWrapper ( const T &  message,
ArenaMessageWrapper wrapper,
T **  message_ptr 
)

在文件 message_traits.h214 行定义.

215 {
216 return message->SerializeToArenaMessageWrapper(wrapper, message_ptr);
217}

◆ SerializeToArenaMessageWrapper() [4/4]

template<typename T , typename std::enable_if< !HasSerializeToArenaMessageWrapper< T >::value &&!std::is_base_of< google::protobuf::Message, T >::value, bool >::type = 0>
bool apollo::cyber::message::SerializeToArenaMessageWrapper ( const T &  message,
ArenaMessageWrapper wrapper,
T **  message_ptr 
)

在文件 message_traits.h224 行定义.

226 {
227 (void)message;
228 (void)wrapper;
229 (void)message_ptr;
230 return false;
231}

◆ SerializeToArray() [1/4]

bool apollo::cyber::message::SerializeToArray ( const PyMessageWrap message,
void *  data,
int  size 
)
inline

在文件 py_message_traits.h31 行定义.

32 {
33 return message.SerializeToArray(data, size);
34}
bool SerializeToArray(void *data, int size) const
Definition py_message.h:100

◆ SerializeToArray() [2/4]

bool apollo::cyber::message::SerializeToArray ( const RawMessage message,
void *  data,
int  size 
)
inline

在文件 raw_message_traits.h32 行定义.

32 {
33 return message.SerializeToArray(data, size);
34}
bool SerializeToArray(void *data, int size) const
Definition raw_message.h:69

◆ SerializeToArray() [3/4]

template<typename T >
std::enable_if< HasSerializeToArray< T >::value, bool >::type apollo::cyber::message::SerializeToArray ( const T &  message,
void *  data,
int  size 
)

在文件 message_traits.h235 行定义.

235 {
236 return message.SerializeToArray(data, size);
237}

◆ SerializeToArray() [4/4]

template<typename T >
std::enable_if<!HasSerializeToArray< T >::value, bool >::type apollo::cyber::message::SerializeToArray ( const T &  message,
void *  data,
int  size 
)

在文件 message_traits.h241 行定义.

241 {
242 return false;
243}

◆ SerializeToHC() [1/2]

template<typename T >
std::enable_if< HasSerializeToArray< T >::value, bool >::type apollo::cyber::message::SerializeToHC ( const T &  message,
void *  data,
int  size 
)

在文件 message_traits.h259 行定义.

259 {
260 int msg_size = ByteSize(message);
261 if (msg_size < 0) {
262 return false;
263 }
264 const std::string& type_name = MessageType(message);
265 MessageHeader header;
266 header.set_msg_type(type_name.data(), type_name.size());
267 header.set_content_size(msg_size);
268 if (sizeof(header) > static_cast<size_t>(size)) {
269 return false;
270 }
271 char* ptr = reinterpret_cast<char*>(data);
272 memcpy(ptr, static_cast<const void*>(&header), sizeof(header));
273 ptr += sizeof(header);
274 int left_size = size - static_cast<int>(sizeof(header));
275 return SerializeToArray(message, reinterpret_cast<void*>(ptr), left_size);
276}

◆ SerializeToHC() [2/2]

template<typename T >
std::enable_if<!HasSerializeToArray< T >::value, bool >::type apollo::cyber::message::SerializeToHC ( const T &  message,
void *  data,
int  size 
)

在文件 message_traits.h280 行定义.

280 {
281 return false;
282}

◆ SerializeToString() [1/2]

template<typename T >
std::enable_if< HasSerializeToString< T >::value, bool >::type apollo::cyber::message::SerializeToString ( const T &  message,
std::string *  str 
)

在文件 message_traits.h247 行定义.

247 {
248 return message.SerializeToString(str);
249}

◆ SerializeToString() [2/2]

template<typename T >
std::enable_if<!HasSerializeToString< T >::value, bool >::type apollo::cyber::message::SerializeToString ( const T &  message,
std::string *  str 
)

在文件 message_traits.h253 行定义.

253 {
254 return false;
255}

◆ SetTypeName() [1/2]

template<typename T >
std::enable_if< HasSetType< T >::value, void >::type apollo::cyber::message::SetTypeName ( const std::string &  type_name,
T *  message 
)

在文件 message_traits.h118 行定义.

119 {
120 message->SetTypeName(type_name);
121}

◆ SetTypeName() [2/2]

template<typename T >
std::enable_if<!HasSetType< T >::value, void >::type apollo::cyber::message::SetTypeName ( const std::string &  type_name,
T *  message 
)

在文件 message_traits.h124 行定义.

125 {}

变量说明

◆ PY_MESSAGE_FULLNAME

const char* const apollo::cyber::message::PY_MESSAGE_FULLNAME = "apollo.cyber.message.PyMessage"

在文件 py_message.h31 行定义.