1#ifndef NROS_RMW_ENTITY_H
2#define NROS_RMW_ENTITY_H
70#define NROS_RMW_RELIABILITY_SYSTEM_DEFAULT 0
71#define NROS_RMW_RELIABILITY_RELIABLE 1
72#define NROS_RMW_RELIABILITY_BEST_EFFORT 2
75#define NROS_RMW_RELIABILITY_UNKNOWN 3
81#define NROS_RMW_RELIABILITY_BEST_AVAILABLE 4
84#define NROS_RMW_DURABILITY_SYSTEM_DEFAULT 0
85#define NROS_RMW_DURABILITY_TRANSIENT_LOCAL 1
86#define NROS_RMW_DURABILITY_VOLATILE 2
87#define NROS_RMW_DURABILITY_UNKNOWN 3
90#define NROS_RMW_DURABILITY_BEST_AVAILABLE 4
93#define NROS_RMW_HISTORY_SYSTEM_DEFAULT 0
94#define NROS_RMW_HISTORY_KEEP_LAST 1
95#define NROS_RMW_HISTORY_KEEP_ALL 2
96#define NROS_RMW_HISTORY_UNKNOWN 3
111#define RMW_MESSAGE_INFO_SEQUENCE_NUMBER_UNSUPPORTED UINT64_MAX
114#define RMW_GID_STORAGE_SIZE 24u
192#define NROS_RMW_TAKE_LEN_UNKNOWN 0
212#define NROS_RMW_SEQUENCE_ID_UNKNOWN (-9223372036854775807LL - 1)
313#define RMW_REQUEST_ID_WRITER_GUID_SIZE 16u
318#ifndef NROS_RMW_REQUEST_ID_T_DEFINED
319#define NROS_RMW_REQUEST_ID_T_DEFINED
626#define RMW_INET_ADDRSTRLEN 48
659 const char *expression,
const char *
const *parameters,
size_t parameter_count);
664#define NROS_RMW_DURATION_INFINITE_MS UINT32_MAX
673#define NROS_RMW_DURATION_BEST_AVAILABLE_MS (UINT32_MAX - 1u)
737#define RMW_SESSION_MAX_PROPERTIES 16
893#define NROS_RMW_QOS_PROFILE_FROM_POLICIES(rel, dur, hist, dep, live) \
894 ((rmw_qos_profile_t){ \
895 .reliability = NROS_RMW_RELIABILITY_##rel, \
896 .durability = NROS_RMW_DURABILITY_##dur, \
897 .history = NROS_RMW_HISTORY_##hist, \
898 .liveliness_kind = NROS_RMW_LIVELINESS_##live, \
903 .liveliness_lease_ms = 0, \
904 .avoid_ros_namespace_conventions = 0, \
905 ._reserved1 = {0, 0, 0}, \
937#define NROS_RMW_QOS_PROFILE_DEFAULT \
938 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 10, SYSTEM_DEFAULT)
941#define NROS_RMW_QOS_PROFILE_SENSOR_DATA \
942 NROS_RMW_QOS_PROFILE_FROM_POLICIES(BEST_EFFORT, VOLATILE, KEEP_LAST, 5, SYSTEM_DEFAULT)
951#define NROS_RMW_QOS_PROFILE_SERVICES_DEFAULT \
952 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 10, SYSTEM_DEFAULT)
955#define NROS_RMW_QOS_PROFILE_PARAMETERS \
956 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 1000, SYSTEM_DEFAULT)
965#define NROS_RMW_QOS_PROFILE_PARAMETER_EVENTS \
966 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 1000, SYSTEM_DEFAULT)
993#define NROS_RMW_QOS_PROFILE_SYSTEM_DEFAULT \
994 NROS_RMW_QOS_PROFILE_FROM_POLICIES(SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, 0, \
1009#define NROS_RMW_QOS_PROFILE_UNKNOWN \
1010 NROS_RMW_QOS_PROFILE_FROM_POLICIES(UNKNOWN, UNKNOWN, UNKNOWN, 0, UNKNOWN)
1036#define NROS_RMW_QOS_POLICY_RELIABILITY (1u << 0)
1037#define NROS_RMW_QOS_POLICY_DURABILITY_VOLATILE (1u << 1)
1038#define NROS_RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL (1u << 2)
1039#define NROS_RMW_QOS_POLICY_HISTORY (1u << 3)
1040#define NROS_RMW_QOS_POLICY_DEPTH (1u << 4)
1041#define NROS_RMW_QOS_POLICY_DEADLINE (1u << 5)
1042#define NROS_RMW_QOS_POLICY_LIFESPAN (1u << 6)
1043#define NROS_RMW_QOS_POLICY_LIVELINESS_AUTOMATIC (1u << 7)
1044#define NROS_RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC (1u << 8)
1045#define NROS_RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE (1u << 9)
1046#define NROS_RMW_QOS_POLICY_LIVELINESS_LEASE (1u << 10)
1047#define NROS_RMW_QOS_POLICY_AVOID_ROS_NAMESPACE_CONVENTIONS (1u << 11)
1053#define NROS_RMW_QOS_POLICY_NONE 0u
1061#define NROS_RMW_QOS_POLICY_CORE \
1062 (NROS_RMW_QOS_POLICY_RELIABILITY | NROS_RMW_QOS_POLICY_DURABILITY_VOLATILE | \
1063 NROS_RMW_QOS_POLICY_HISTORY | NROS_RMW_QOS_POLICY_DEPTH)
nros_rmw_qos_clash_t
Definition rmw_entity.h:508
@ NROS_RMW_QOS_CLASH_DEADLINE
Definition rmw_entity.h:512
@ NROS_RMW_QOS_CLASH_LIVELINESS_KIND
Definition rmw_entity.h:513
@ NROS_RMW_QOS_CLASH_RELIABILITY
Definition rmw_entity.h:510
@ NROS_RMW_QOS_CLASH_DURABILITY
Definition rmw_entity.h:511
@ NROS_RMW_QOS_CLASH_NONE
Definition rmw_entity.h:509
@ NROS_RMW_QOS_CLASH_LIVELINESS_LEASE
Definition rmw_entity.h:514
rmw_ret_t rmw_compare_gids_equal(const rmw_gid_t *gid1, const rmw_gid_t *gid2, bool *result)
rmw_liveliness_kind_t
Definition rmw_entity.h:362
@ NROS_RMW_LIVELINESS_BEST_AVAILABLE
Definition rmw_entity.h:377
@ NROS_RMW_LIVELINESS_MANUAL_BY_TOPIC
Definition rmw_entity.h:372
@ NROS_RMW_LIVELINESS_UNKNOWN
Definition rmw_entity.h:374
@ NROS_RMW_LIVELINESS_SYSTEM_DEFAULT
Definition rmw_entity.h:366
@ NROS_RMW_LIVELINESS_MANUAL_BY_NODE
Definition rmw_entity.h:370
@ NROS_RMW_LIVELINESS_AUTOMATIC
Definition rmw_entity.h:368
rmw_transport_protocol_t
Definition rmw_entity.h:609
@ RMW_TRANSPORT_PROTOCOL_UNKNOWN
Definition rmw_entity.h:610
@ RMW_TRANSPORT_PROTOCOL_COUNT
Definition rmw_entity.h:613
@ RMW_TRANSPORT_PROTOCOL_TCP
Definition rmw_entity.h:612
@ RMW_TRANSPORT_PROTOCOL_UDP
Definition rmw_entity.h:611
rmw_endpoint_type_t
Definition rmw_entity.h:577
@ RMW_ENDPOINT_SUBSCRIPTION
Definition rmw_entity.h:580
@ RMW_ENDPOINT_INVALID
Definition rmw_entity.h:578
@ RMW_ENDPOINT_PUBLISHER
Definition rmw_entity.h:579
int64_t rmw_time_point_value_t
Definition rmw_entity.h:107
void(* rmw_content_filter_visit_fn)(void *ctx, const char *expression, const char *const *parameters, size_t parameter_count)
Definition rmw_entity.h:658
rmw_log_severity_t
Definition rmw_entity.h:567
@ RMW_LOG_SEVERITY_WARN
Definition rmw_entity.h:571
@ RMW_LOG_SEVERITY_ERROR
Definition rmw_entity.h:572
@ RMW_LOG_SEVERITY_INFO
Definition rmw_entity.h:570
@ RMW_LOG_SEVERITY_FATAL
Definition rmw_entity.h:573
@ RMW_LOG_SEVERITY_DEBUG
Definition rmw_entity.h:569
@ RMW_LOG_SEVERITY_UNSET
Definition rmw_entity.h:568
rmw_feature_t
Definition rmw_entity.h:101
@ RMW_FEATURE_MESSAGE_INFO_RECEPTION_SEQUENCE_NUMBER
Definition rmw_entity.h:103
@ RMW_FEATURE_MESSAGE_INFO_PUBLICATION_SEQUENCE_NUMBER
Definition rmw_entity.h:102
#define RMW_GID_STORAGE_SIZE
Definition rmw_entity.h:114
rmw_ret_t nros_rmw_qos_incompatibility_mask(rmw_qos_profile_t offered, rmw_qos_profile_t requested, rmw_qos_compatibility_type_t *compatibility, uint32_t *clash_mask)
rmw_ret_t rmw_qos_profile_check_compatible(rmw_qos_profile_t publisher_profile, rmw_qos_profile_t subscription_profile, rmw_qos_compatibility_type_t *compatibility, char *reason, size_t reason_size)
#define RMW_INET_ADDRSTRLEN
Definition rmw_entity.h:626
rmw_internet_protocol_t
Definition rmw_entity.h:617
@ RMW_INTERNET_PROTOCOL_COUNT
Definition rmw_entity.h:621
@ RMW_INTERNET_PROTOCOL_UNKNOWN
Definition rmw_entity.h:618
@ RMW_INTERNET_PROTOCOL_IPV6
Definition rmw_entity.h:620
@ RMW_INTERNET_PROTOCOL_IPV4
Definition rmw_entity.h:619
rmw_qos_compatibility_type_t
Definition rmw_entity.h:500
@ RMW_QOS_COMPATIBILITY_ERROR
Definition rmw_entity.h:503
@ RMW_QOS_COMPATIBILITY_WARNING
Definition rmw_entity.h:502
@ RMW_QOS_COMPATIBILITY_OK
Definition rmw_entity.h:501
bool(* rmw_network_flow_endpoint_visit_fn)(void *ctx, const rmw_network_flow_endpoint_t *endpoint)
Definition rmw_entity.h:648
Return-code constants for the nros RMW C vtable.
int32_t rmw_ret_t
Definition rmw_ret.h:72
Definition rmw_entity.h:142
size_t len
Definition rmw_entity.h:144
const uint8_t * data
Definition rmw_entity.h:143
Definition rmw_entity.h:1243
uint8_t _reserved[8]
Definition rmw_entity.h:1249
void * backend_data
Definition rmw_entity.h:1251
const char * service_name
Definition rmw_entity.h:1245
const char * type_name
Definition rmw_entity.h:1247
Definition rmw_entity.h:263
uint8_t data[24u]
Definition rmw_entity.h:268
const char * implementation_identifier
Definition rmw_entity.h:266
Definition rmw_entity.h:291
rmw_gid_t publisher_gid
Definition rmw_entity.h:303
uint64_t reception_sequence_number
Definition rmw_entity.h:301
rmw_time_point_value_t source_timestamp
Definition rmw_entity.h:293
bool from_intra_process
Definition rmw_entity.h:306
uint64_t publication_sequence_number
Definition rmw_entity.h:299
rmw_time_point_value_t received_timestamp
Definition rmw_entity.h:295
Definition rmw_entity.h:240
const char * type_name
Definition rmw_entity.h:244
const char * type_hash
Definition rmw_entity.h:247
Definition rmw_entity.h:164
uint8_t * data
Definition rmw_entity.h:165
size_t len
Definition rmw_entity.h:176
size_t capacity
Definition rmw_entity.h:167
Definition rmw_entity.h:631
uint8_t dscp
Definition rmw_entity.h:638
rmw_transport_protocol_t transport_protocol
Definition rmw_entity.h:632
rmw_internet_protocol_t internet_protocol
Definition rmw_entity.h:633
char internet_address[48]
Definition rmw_entity.h:639
uint16_t transport_port
Definition rmw_entity.h:634
uint32_t flow_label
Definition rmw_entity.h:636
Definition rmw_entity.h:1132
uint8_t _reserved[8]
Definition rmw_entity.h:1143
const char * namespace_
Definition rmw_entity.h:1136
rmw_session_t * session
Definition rmw_entity.h:1141
const char * name
Definition rmw_entity.h:1134
void * backend_data
Definition rmw_entity.h:1145
Definition rmw_entity.h:766
uint8_t _reserved[7]
Definition rmw_entity.h:772
uint8_t tx_express
Definition rmw_entity.h:771
Definition rmw_entity.h:1176
const char * type_name
Definition rmw_entity.h:1181
uint8_t _reserved[7]
Definition rmw_entity.h:1189
bool can_loan_messages
Definition rmw_entity.h:1187
const char * topic_name
Definition rmw_entity.h:1178
void * backend_data
Definition rmw_entity.h:1191
rmw_qos_profile_t qos
Definition rmw_entity.h:1183
Definition rmw_entity.h:421
uint8_t avoid_ros_namespace_conventions
Definition rmw_entity.h:450
uint8_t reliability
Definition rmw_entity.h:423
uint8_t durability
Definition rmw_entity.h:424
uint16_t depth
Definition rmw_entity.h:427
uint32_t lifespan_ms
Definition rmw_entity.h:438
uint8_t _reserved1[3]
Definition rmw_entity.h:451
uint8_t liveliness_kind
Definition rmw_entity.h:426
uint16_t _reserved0
Definition rmw_entity.h:428
uint32_t deadline_ms
Definition rmw_entity.h:434
uint8_t history
Definition rmw_entity.h:425
uint32_t liveliness_lease_ms
Definition rmw_entity.h:442
Definition rmw_entity.h:327
int8_t writer_guid[16]
Definition rmw_entity.h:329
int64_t sequence_number
Definition rmw_entity.h:331
Definition rmw_entity.h:347
rmw_time_point_value_t received_timestamp
Definition rmw_entity.h:351
rmw_request_id_t request_id
Definition rmw_entity.h:353
rmw_time_point_value_t source_timestamp
Definition rmw_entity.h:349
Definition rmw_entity.h:1228
uint8_t _reserved[8]
Definition rmw_entity.h:1235
void * backend_data
Definition rmw_entity.h:1237
const char * service_name
Definition rmw_entity.h:1230
const char * type_name
Definition rmw_entity.h:1233
Definition rmw_entity.h:256
const char * type_name
Definition rmw_entity.h:258
const char * type_hash
Definition rmw_entity.h:260
Definition rmw_entity.h:739
uint8_t _reserved[7]
Definition rmw_entity.h:746
size_t property_count
Definition rmw_entity.h:763
uint8_t localhost_only
Definition rmw_entity.h:745
const char * enclave
Definition rmw_entity.h:755
const rmw_session_property_t * properties
Definition rmw_entity.h:762
Definition rmw_entity.h:724
const char * value
Definition rmw_entity.h:726
const char * key
Definition rmw_entity.h:725
Definition rmw_entity.h:1081
const char * node_name
Definition rmw_entity.h:1083
const char * namespace_
Definition rmw_entity.h:1085
void * backend_data
Definition rmw_entity.h:1090
uint8_t _reserved[8]
Definition rmw_entity.h:1088
Definition rmw_entity.h:780
uint32_t rx_buffer_hint
Definition rmw_entity.h:825
uint32_t arrival_rate_mhz
Definition rmw_entity.h:847
Definition rmw_entity.h:1198
uint8_t _reserved[7]
Definition rmw_entity.h:1210
void * backend_data
Definition rmw_entity.h:1212
bool can_loan_messages
Definition rmw_entity.h:1208
const char * type_name
Definition rmw_entity.h:1202
const char * topic_name
Definition rmw_entity.h:1200
rmw_qos_profile_t qos
Definition rmw_entity.h:1204
Definition rmw_entity.h:588
const char * node_name
Definition rmw_entity.h:590
rmw_endpoint_type_t endpoint_type
Definition rmw_entity.h:596
rmw_gid_t endpoint_gid
Definition rmw_entity.h:598
rmw_qos_profile_t qos_profile
Definition rmw_entity.h:603
const char * topic_type
Definition rmw_entity.h:594
const char * node_namespace
Definition rmw_entity.h:592