Go to the source code of this file.
|
rmw_topic_endpoint_info_t | rmw_get_zero_initialized_topic_endpoint_info (void) |
| Return zero initialized topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_fini (rmw_topic_endpoint_info_t *topic_endpoint_info, rcutils_allocator_t *allocator) |
| Finalize a topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_set_topic_type (rmw_topic_endpoint_info_t *topic_endpoint_info, const char *topic_type, rcutils_allocator_t *allocator) |
| Set the topic type in the given topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_set_node_name (rmw_topic_endpoint_info_t *topic_endpoint_info, const char *node_name, rcutils_allocator_t *allocator) |
| Set the node name in the given topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_set_node_namespace (rmw_topic_endpoint_info_t *topic_endpoint_info, const char *node_namespace, rcutils_allocator_t *allocator) |
| Set the node namespace in the given topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_set_endpoint_type (rmw_topic_endpoint_info_t *topic_endpoint_info, rmw_endpoint_type_t type) |
| Set the endpoint type in the given topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_set_gid (rmw_topic_endpoint_info_t *topic_endpoint_info, const uint8_t gid[], size_t size) |
| Set the endpoint gid in the given topic endpoint info data structure. More...
|
|
rmw_ret_t | rmw_topic_endpoint_info_set_qos_profile (rmw_topic_endpoint_info_t *topic_endpoint_info, const rmw_qos_profile_t *qos_profile) |
| Set the endpoint QoS profile in the given topic endpoint info data structure. More...
|
|
◆ rmw_topic_endpoint_info_t
A data structure that encapsulates the node name, node namespace, topic_type, gid, and qos_profile of publishers and subscriptions for a topic.
◆ rmw_get_zero_initialized_topic_endpoint_info()
Return zero initialized topic endpoint info data structure.
Endpoint type will be invalid. Endpoint QoS profile will be the system default.
◆ rmw_topic_endpoint_info_fini()
Finalize a topic endpoint info data structure.
This function deallocates all allocated members of the given data structure, and then zero initializes it. If a logical error, such as RMW_RET_INVALID_ARGUMENT
, ensues, this function will return early, leaving the given data structure unchanged. Otherwise, it will proceed despite errors.
Attribute | Adherence |
Allocates Memory | No |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Finalization is a reentrant procedure, but:
- Access to the topic endpoint info data structure is not synchronized. It is not safe to read or write
topic_endpoint
during finalization.
- The default allocators are thread-safe objects, but any custom
allocator
may not be. Check your allocator documentation for further reference.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be finalized. |
[in] | allocator | Allocator used to populate the given topic_endpoint_info . |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if allocator
is invalid, by rcutils_allocator_is_valid() definition, or
-
RMW_RET_ERROR
when an unspecified error occurs.
◆ rmw_topic_endpoint_info_set_topic_type()
Set the topic type in the given topic endpoint info data structure.
This functions allocates memory and copies the value of the topic_type
argument to set the data structure topic_type
member.
Attribute | Adherence |
Allocates Memory | Yes |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Setting a member is a reentrant procedure, but:
- Access to the topic endpoint info data structure is not synchronized. It is not safe to read or write the
topic_type
member of the given topic_endpoint
while setting it.
- Access to C-style string arguments is read-only but it is not synchronized. Concurrent
topic_type
reads are safe, but concurrent reads and writes are not.
- The default allocators are thread-safe objects, but any custom
allocator
may not be. Check your allocator documentation for further reference.
- Precondition
- Given
topic_type
is a valid C-style string i.e. NULL terminated.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be populated. |
[in] | topic_type | Type name to be set. |
[in] | allocator | Allocator to be used. |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if topic_type
is NULL, or
-
RMW_RET_BAD_ALLOC
if memory allocation fails, or
-
RMW_RET_ERROR
when an unspecified error occurs.
◆ rmw_topic_endpoint_info_set_node_name()
Set the node name in the given topic endpoint info data structure.
This functions allocates memory and copies the value of the node_name
argument to set the data structure node_name
member.
Attribute | Adherence |
Allocates Memory | Yes |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Setting a member is a reentrant procedure, but:
- Access to the topic endpoint info data structure is not synchronized. It is not safe to read or write the
node_name
member of the given topic_endpoint
while setting it.
- Access to C-style string arguments is read-only but it is not synchronized. Concurrent
node_name
reads are safe, but concurrent reads and writes are not.
- The default allocators are thread-safe objects, but any custom
allocator
may not be. Check your allocator documentation for further reference.
- Precondition
- Given
node_name
is a valid C-style string i.e. NULL terminated.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be populated. |
[in] | node_name | Node name to be set. |
[in] | allocator | Allocator to be used. |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if node_name
is NULL, or
-
RMW_RET_BAD_ALLOC
if memory allocation fails, or
-
RMW_RET_ERROR
when an unspecified error occurs.
◆ rmw_topic_endpoint_info_set_node_namespace()
Set the node namespace in the given topic endpoint info data structure.
This functions allocates memory and copies the value of the node_namespace
argument to set the data structure node_namespace
member.
Attribute | Adherence |
Allocates Memory | Yes |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Setting a member is a reentrant procedure, but:
- Access to the topic endpoint info data structure is not synchronized. It is not safe to read or write the
node_namespace
member of the given topic_endpoint
while setting it.
- Access to C-style string arguments is read-only but it is not synchronized. Concurrent
node_namespace
reads are safe, but concurrent reads and writes are not.
- The default allocators are thread-safe objects, but any custom
allocator
may not be. Check your allocator documentation for further reference.
- Precondition
- Given
node_namespace
is a valid C-style string i.e. NULL terminated.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be populated. |
[in] | node_namespace | Node namespace to be set. |
[in] | allocator | Allocator to be used. |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if node_namespace
is NULL, or
-
RMW_RET_BAD_ALLOC
if memory allocation fails, or
-
RMW_RET_ERROR
when an unspecified error occurs.
◆ rmw_topic_endpoint_info_set_endpoint_type()
Set the endpoint type in the given topic endpoint info data structure.
This functions assigns the value of the type
argument to the data structure endpoint_type
member.
Attribute | Adherence |
Allocates Memory | No |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Setting a member is a reentrant procedure, but access to the topic endpoint info data structure is not synchronized. It is not safe to read or write the
endpoint_type
member of the given topic_endpoint
while setting it.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be populated. |
[in] | type | Endpoint type to be set. |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_ERROR
when an unspecified error occurs.
◆ rmw_topic_endpoint_info_set_gid()
Set the endpoint gid in the given topic endpoint info data structure.
This functions copies the value of the gid
argument to the data structure endpoint_gid
member.
Attribute | Adherence |
Allocates Memory | No |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Setting a member is a reentrant procedure, but access to the topic endpoint info data structure is not synchronized. It is not safe to read or write the
gid
member of the given topic_endpoint
while setting it.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be populated. |
[in] | gid | Endpoint gid to be set. |
[in] | size | Size of the given gid . |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if gid
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if size
is greater than RMW_GID_STORAGE_SIZE, or
-
RMW_RET_ERROR
when an unspecified error occurs.
◆ rmw_topic_endpoint_info_set_qos_profile()
Set the endpoint QoS profile in the given topic endpoint info data structure.
This functions assigns the value of the qos_profile
argument to the data structure qos_profile
member.
Attribute | Adherence |
Allocates Memory | No |
Thread-Safe | No |
Uses Atomics | No |
Lock-Free | Yes |
- Thread-safety
- Setting a member is a reentrant procedure, but access to the topic endpoint info data structure is not synchronized. It is not safe to read or write the
qos_profile
member of the given topic_endpoint
while setting it.
- Parameters
-
[in,out] | topic_endpoint_info | Data structure to be populated. |
[in] | qos_profile | QoS profile to be set. |
- Returns
RMW_RET_OK
if successful, or
-
RMW_RET_INVALID_ARGUMENT
if topic_endpoint_info
is NULL, or
-
RMW_RET_INVALID_ARGUMENT
if qos_profile
is NULL, or
-
RMW_RET_ERROR
when an unspecified error occurs.