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
78#define NROS_RMW_DURABILITY_SYSTEM_DEFAULT 0
79#define NROS_RMW_DURABILITY_TRANSIENT_LOCAL 1
80#define NROS_RMW_DURABILITY_VOLATILE 2
81#define NROS_RMW_DURABILITY_UNKNOWN 3
84#define NROS_RMW_HISTORY_SYSTEM_DEFAULT 0
85#define NROS_RMW_HISTORY_KEEP_LAST 1
86#define NROS_RMW_HISTORY_KEEP_ALL 2
87#define NROS_RMW_HISTORY_UNKNOWN 3
102#define RMW_MESSAGE_INFO_SEQUENCE_NUMBER_UNSUPPORTED UINT64_MAX
105#define RMW_GID_STORAGE_SIZE 24u
183#define NROS_RMW_TAKE_LEN_UNKNOWN 0
547#define RMW_INET_ADDRSTRLEN 48
580 const char *expression,
const char *
const *parameters,
size_t parameter_count);
585#define NROS_RMW_DURATION_INFINITE_MS UINT32_MAX
649#define RMW_SESSION_MAX_PROPERTIES 16
783#define NROS_RMW_QOS_PROFILE_FROM_POLICIES(rel, dur, hist, dep, live) \
784 ((rmw_qos_profile_t){ \
785 .reliability = NROS_RMW_RELIABILITY_##rel, \
786 .durability = NROS_RMW_DURABILITY_##dur, \
787 .history = NROS_RMW_HISTORY_##hist, \
788 .liveliness_kind = NROS_RMW_LIVELINESS_##live, \
793 .liveliness_lease_ms = 0, \
794 .avoid_ros_namespace_conventions = 0, \
795 ._reserved1 = {0, 0, 0}, \
827#define NROS_RMW_QOS_PROFILE_DEFAULT \
828 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 10, SYSTEM_DEFAULT)
831#define NROS_RMW_QOS_PROFILE_SENSOR_DATA \
832 NROS_RMW_QOS_PROFILE_FROM_POLICIES(BEST_EFFORT, VOLATILE, KEEP_LAST, 5, SYSTEM_DEFAULT)
841#define NROS_RMW_QOS_PROFILE_SERVICES_DEFAULT \
842 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 10, SYSTEM_DEFAULT)
845#define NROS_RMW_QOS_PROFILE_PARAMETERS \
846 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 1000, SYSTEM_DEFAULT)
855#define NROS_RMW_QOS_PROFILE_PARAMETER_EVENTS \
856 NROS_RMW_QOS_PROFILE_FROM_POLICIES(RELIABLE, VOLATILE, KEEP_LAST, 1000, SYSTEM_DEFAULT)
883#define NROS_RMW_QOS_PROFILE_SYSTEM_DEFAULT \
884 NROS_RMW_QOS_PROFILE_FROM_POLICIES(SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, 0, \
899#define NROS_RMW_QOS_PROFILE_UNKNOWN \
900 NROS_RMW_QOS_PROFILE_FROM_POLICIES(UNKNOWN, UNKNOWN, UNKNOWN, 0, UNKNOWN)
926#define NROS_RMW_QOS_POLICY_RELIABILITY (1u << 0)
927#define NROS_RMW_QOS_POLICY_DURABILITY_VOLATILE (1u << 1)
928#define NROS_RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL (1u << 2)
929#define NROS_RMW_QOS_POLICY_HISTORY (1u << 3)
930#define NROS_RMW_QOS_POLICY_DEPTH (1u << 4)
931#define NROS_RMW_QOS_POLICY_DEADLINE (1u << 5)
932#define NROS_RMW_QOS_POLICY_LIFESPAN (1u << 6)
933#define NROS_RMW_QOS_POLICY_LIVELINESS_AUTOMATIC (1u << 7)
934#define NROS_RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC (1u << 8)
935#define NROS_RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE (1u << 9)
936#define NROS_RMW_QOS_POLICY_LIVELINESS_LEASE (1u << 10)
937#define NROS_RMW_QOS_POLICY_AVOID_ROS_NAMESPACE_CONVENTIONS (1u << 11)
943#define NROS_RMW_QOS_POLICY_NONE 0u
951#define NROS_RMW_QOS_POLICY_CORE \
952 (NROS_RMW_QOS_POLICY_RELIABILITY | NROS_RMW_QOS_POLICY_DURABILITY_VOLATILE | \
953 NROS_RMW_QOS_POLICY_HISTORY | NROS_RMW_QOS_POLICY_DEPTH)
nros_rmw_qos_clash_t
Definition rmw_entity.h:429
@ NROS_RMW_QOS_CLASH_DEADLINE
Definition rmw_entity.h:433
@ NROS_RMW_QOS_CLASH_LIVELINESS_KIND
Definition rmw_entity.h:434
@ NROS_RMW_QOS_CLASH_RELIABILITY
Definition rmw_entity.h:431
@ NROS_RMW_QOS_CLASH_DURABILITY
Definition rmw_entity.h:432
@ NROS_RMW_QOS_CLASH_NONE
Definition rmw_entity.h:430
@ NROS_RMW_QOS_CLASH_LIVELINESS_LEASE
Definition rmw_entity.h:435
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:286
@ NROS_RMW_LIVELINESS_MANUAL_BY_TOPIC
Definition rmw_entity.h:296
@ NROS_RMW_LIVELINESS_UNKNOWN
Definition rmw_entity.h:298
@ NROS_RMW_LIVELINESS_SYSTEM_DEFAULT
Definition rmw_entity.h:290
@ NROS_RMW_LIVELINESS_MANUAL_BY_NODE
Definition rmw_entity.h:294
@ NROS_RMW_LIVELINESS_AUTOMATIC
Definition rmw_entity.h:292
rmw_transport_protocol_t
Definition rmw_entity.h:530
@ RMW_TRANSPORT_PROTOCOL_UNKNOWN
Definition rmw_entity.h:531
@ RMW_TRANSPORT_PROTOCOL_COUNT
Definition rmw_entity.h:534
@ RMW_TRANSPORT_PROTOCOL_TCP
Definition rmw_entity.h:533
@ RMW_TRANSPORT_PROTOCOL_UDP
Definition rmw_entity.h:532
rmw_endpoint_type_t
Definition rmw_entity.h:498
@ RMW_ENDPOINT_SUBSCRIPTION
Definition rmw_entity.h:501
@ RMW_ENDPOINT_INVALID
Definition rmw_entity.h:499
@ RMW_ENDPOINT_PUBLISHER
Definition rmw_entity.h:500
int64_t rmw_time_point_value_t
Definition rmw_entity.h:98
void(* rmw_content_filter_visit_fn)(void *ctx, const char *expression, const char *const *parameters, size_t parameter_count)
Definition rmw_entity.h:579
rmw_log_severity_t
Definition rmw_entity.h:488
@ RMW_LOG_SEVERITY_WARN
Definition rmw_entity.h:492
@ RMW_LOG_SEVERITY_ERROR
Definition rmw_entity.h:493
@ RMW_LOG_SEVERITY_INFO
Definition rmw_entity.h:491
@ RMW_LOG_SEVERITY_FATAL
Definition rmw_entity.h:494
@ RMW_LOG_SEVERITY_DEBUG
Definition rmw_entity.h:490
@ RMW_LOG_SEVERITY_UNSET
Definition rmw_entity.h:489
rmw_feature_t
Definition rmw_entity.h:92
@ RMW_FEATURE_MESSAGE_INFO_RECEPTION_SEQUENCE_NUMBER
Definition rmw_entity.h:94
@ RMW_FEATURE_MESSAGE_INFO_PUBLICATION_SEQUENCE_NUMBER
Definition rmw_entity.h:93
#define RMW_GID_STORAGE_SIZE
Definition rmw_entity.h:105
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:547
rmw_internet_protocol_t
Definition rmw_entity.h:538
@ RMW_INTERNET_PROTOCOL_COUNT
Definition rmw_entity.h:542
@ RMW_INTERNET_PROTOCOL_UNKNOWN
Definition rmw_entity.h:539
@ RMW_INTERNET_PROTOCOL_IPV6
Definition rmw_entity.h:541
@ RMW_INTERNET_PROTOCOL_IPV4
Definition rmw_entity.h:540
rmw_qos_compatibility_type_t
Definition rmw_entity.h:421
@ RMW_QOS_COMPATIBILITY_ERROR
Definition rmw_entity.h:424
@ RMW_QOS_COMPATIBILITY_WARNING
Definition rmw_entity.h:423
@ RMW_QOS_COMPATIBILITY_OK
Definition rmw_entity.h:422
bool(* rmw_network_flow_endpoint_visit_fn)(void *ctx, const rmw_network_flow_endpoint_t *endpoint)
Definition rmw_entity.h:569
Return-code constants for the nros RMW C vtable.
int32_t rmw_ret_t
Definition rmw_ret.h:72
Definition rmw_entity.h:133
size_t len
Definition rmw_entity.h:135
const uint8_t * data
Definition rmw_entity.h:134
Definition rmw_entity.h:1133
uint8_t _reserved[8]
Definition rmw_entity.h:1139
void * backend_data
Definition rmw_entity.h:1141
const char * service_name
Definition rmw_entity.h:1135
const char * type_name
Definition rmw_entity.h:1137
Definition rmw_entity.h:234
uint8_t data[24u]
Definition rmw_entity.h:239
const char * implementation_identifier
Definition rmw_entity.h:237
Definition rmw_entity.h:262
rmw_gid_t publisher_gid
Definition rmw_entity.h:274
uint64_t reception_sequence_number
Definition rmw_entity.h:272
rmw_time_point_value_t source_timestamp
Definition rmw_entity.h:264
bool from_intra_process
Definition rmw_entity.h:277
uint64_t publication_sequence_number
Definition rmw_entity.h:270
rmw_time_point_value_t received_timestamp
Definition rmw_entity.h:266
Definition rmw_entity.h:211
const char * type_name
Definition rmw_entity.h:215
const char * type_hash
Definition rmw_entity.h:218
Definition rmw_entity.h:155
uint8_t * data
Definition rmw_entity.h:156
size_t len
Definition rmw_entity.h:167
size_t capacity
Definition rmw_entity.h:158
Definition rmw_entity.h:552
uint8_t dscp
Definition rmw_entity.h:559
rmw_transport_protocol_t transport_protocol
Definition rmw_entity.h:553
rmw_internet_protocol_t internet_protocol
Definition rmw_entity.h:554
char internet_address[48]
Definition rmw_entity.h:560
uint16_t transport_port
Definition rmw_entity.h:555
uint32_t flow_label
Definition rmw_entity.h:557
Definition rmw_entity.h:1022
uint8_t _reserved[8]
Definition rmw_entity.h:1033
const char * namespace_
Definition rmw_entity.h:1026
rmw_session_t * session
Definition rmw_entity.h:1031
const char * name
Definition rmw_entity.h:1024
void * backend_data
Definition rmw_entity.h:1035
Definition rmw_entity.h:678
uint8_t _reserved[7]
Definition rmw_entity.h:684
uint8_t tx_express
Definition rmw_entity.h:683
Definition rmw_entity.h:1066
const char * type_name
Definition rmw_entity.h:1071
uint8_t _reserved[7]
Definition rmw_entity.h:1079
bool can_loan_messages
Definition rmw_entity.h:1077
const char * topic_name
Definition rmw_entity.h:1068
void * backend_data
Definition rmw_entity.h:1081
rmw_qos_profile_t qos
Definition rmw_entity.h:1073
Definition rmw_entity.h:342
uint8_t avoid_ros_namespace_conventions
Definition rmw_entity.h:371
uint8_t reliability
Definition rmw_entity.h:344
uint8_t durability
Definition rmw_entity.h:345
uint16_t depth
Definition rmw_entity.h:348
uint32_t lifespan_ms
Definition rmw_entity.h:359
uint8_t _reserved1[3]
Definition rmw_entity.h:372
uint8_t liveliness_kind
Definition rmw_entity.h:347
uint16_t _reserved0
Definition rmw_entity.h:349
uint32_t deadline_ms
Definition rmw_entity.h:355
uint8_t history
Definition rmw_entity.h:346
uint32_t liveliness_lease_ms
Definition rmw_entity.h:363
Definition rmw_entity.h:1118
uint8_t _reserved[8]
Definition rmw_entity.h:1125
void * backend_data
Definition rmw_entity.h:1127
const char * service_name
Definition rmw_entity.h:1120
const char * type_name
Definition rmw_entity.h:1123
Definition rmw_entity.h:227
const char * type_name
Definition rmw_entity.h:229
const char * type_hash
Definition rmw_entity.h:231
Definition rmw_entity.h:651
uint8_t _reserved[7]
Definition rmw_entity.h:658
size_t property_count
Definition rmw_entity.h:675
uint8_t localhost_only
Definition rmw_entity.h:657
const char * enclave
Definition rmw_entity.h:667
const rmw_session_property_t * properties
Definition rmw_entity.h:674
Definition rmw_entity.h:636
const char * value
Definition rmw_entity.h:638
const char * key
Definition rmw_entity.h:637
Definition rmw_entity.h:971
const char * node_name
Definition rmw_entity.h:973
const char * namespace_
Definition rmw_entity.h:975
void * backend_data
Definition rmw_entity.h:980
uint8_t _reserved[8]
Definition rmw_entity.h:978
Definition rmw_entity.h:692
uint8_t _reserved[4]
Definition rmw_entity.h:737
uint32_t rx_buffer_hint
Definition rmw_entity.h:736
Definition rmw_entity.h:1088
uint8_t _reserved[7]
Definition rmw_entity.h:1100
void * backend_data
Definition rmw_entity.h:1102
bool can_loan_messages
Definition rmw_entity.h:1098
const char * type_name
Definition rmw_entity.h:1092
const char * topic_name
Definition rmw_entity.h:1090
rmw_qos_profile_t qos
Definition rmw_entity.h:1094
Definition rmw_entity.h:509
const char * node_name
Definition rmw_entity.h:511
rmw_endpoint_type_t endpoint_type
Definition rmw_entity.h:517
rmw_gid_t endpoint_gid
Definition rmw_entity.h:519
rmw_qos_profile_t qos_profile
Definition rmw_entity.h:524
const char * topic_type
Definition rmw_entity.h:515
const char * node_namespace
Definition rmw_entity.h:513