Struct message_type_support_callbacks_t

Struct Documentation

struct message_type_support_callbacks_t

Encapsulates the callbacks for getting properties of this rosidl type.

These callbacks are implemented in the generated sources.

Public Members

const char *message_namespace_

The C++ namespace of this message.

const char *message_name_

The typename of this message.

bool (*cdr_serialize)(const void *untyped_ros_message, eprosima::fastcdr::Cdr &cdr)

Callback function for message serialization.

Param untyped_ros_message:

[in] Type erased pointer to message instance.

Param Serialized:

[inout] FastCDR data object.

Return:

true if serialization succeeded, false otherwise.

bool (*cdr_deserialize)(eprosima::fastcdr::Cdr &cdr, void *untyped_ros_message)

Callback function for message deserialization.

Param Serialized:

[in] FastCDR data object.

Param untyped_ros_message:

[out] Type erased pointer to message instance.

Return:

true if deserialization succeeded, false otherwise.

uint32_t (*get_serialized_size)(const void*)

Callback function to get size of data.

Return:

The size of the serialized message in bytes.

size_t (*max_serialized_size)(char &bounds_info)

Callback function to determine the maximum size needed for serialization, which is used for type support initialization.

Param bounds_info:

[out] Bounds information for the type. May return one of the following values:

  • ROSIDL_TYPESUPPORT_FASTRTPS_PLAIN_TYPE for POD types

  • ROSIDL_TYPESUPPORT_FASTRTPS_BOUNDED_TYPE for fully bounded types, (i.e. not unbounded strings or sequences).

  • ROSIDL_TYPESUPPORT_FASTRTPS_UNBOUNDED_TYPE for unbounded types

Return:

The maximum serialized size, in bytes.