55 typedef struct NANODllExport NANO_XRCE_ClientRequestI NANO_XRCE_ClientRequest;
57 #if NANO_FEAT_SUBSCRIBE ||\ 59 NANO_FEAT_AGENT_DISCOVERY ||\ 60 NANO_FEAT_OBJECT_INFO ||\ 62 #define NANO_HAVE_CLIENT_LISTENER 64 #undef NANO_HAVE_CLIENT_LISTENER 67 #ifdef NANO_HAVE_CLIENT_LISTENER 83 #if NANO_FEAT_SUBSCRIBE 98 NANO_XRCE_ClientListener *
const self,
109 #if NANO_FEAT_RELIABILITY 110 #if NANO_FEAT_PUBLISH 119 NANO_XRCE_ClientListener *
const self,
121 const NANO_XRCE_ClientRequest *
const write_req);
135 NANO_XRCE_ClientListener *
const self,
143 #if NANO_FEAT_OBJECT_INFO 153 NANO_XRCE_ClientListener *
const self,
155 const NANO_XRCE_ObjectInfo *
const info);
158 #if NANO_FEAT_AGENT_DISCOVERY 169 NANO_XRCE_ClientListener *
const self,
171 const NANO_XRCE_TransportLocator *
const agent_locator,
181 #if NANO_FEAT_SUBSCRIBE 188 #if NANO_FEAT_RELIABILITY 189 #if NANO_FEAT_PUBLISH 202 #if NANO_FEAT_OBJECT_INFO 209 #if NANO_FEAT_AGENT_DISCOVERY 226 #if NANO_FEAT_SUBSCRIBE
229 #if NANO_FEAT_RELIABILITY
230 #if NANO_FEAT_PUBLISH
231 on_write_complete(NULL),
233 on_message_lost(NULL),
235 #if NANO_FEAT_OBJECT_INFO
238 #if NANO_FEAT_AGENT_DISCOVERY
239 on_agent_discovered(NULL),
247 #if NANO_FEAT_SUBSCRIBE 248 #define NANO_XRCE_CLIENTLISTENER_SUBSCRIBE_INITIALIZER \ 251 #define NANO_XRCE_CLIENTLISTENER_SUBSCRIBE_INITIALIZER 254 #if NANO_FEAT_RELIABILITY 255 #if NANO_FEAT_PUBLISH 256 #define NANO_XRCE_CLIENTLISTENER_RELIABILITY_INITIALIZER \ 260 #define NANO_XRCE_CLIENTLISTENER_RELIABILITY_INITIALIZER \ 264 #define NANO_XRCE_CLIENTLISTENER_RELIABILITY_INITIALIZER 267 #if NANO_FEAT_OBJECT_INFO 268 #define NANO_XRCE_CLIENTLISTENER_INFO_INITIALIZER \ 271 #define NANO_XRCE_CLIENTLISTENER_INFO_INITIALIZER 274 #if NANO_FEAT_AGENT_DISCOVERY 275 #define NANO_XRCE_CLIENTLISTENER_DISCOVERY_INITIALIZER \ 278 #define NANO_XRCE_CLIENTLISTENER_DISCOVERY_INITIALIZER 285 #define NANO_XRCE_CLIENTLISTENER_INITIALIZER \ 287 NANO_XRCE_CLIENTLISTENER_SUBSCRIBE_INITIALIZER \ 288 NANO_XRCE_CLIENTLISTENER_RELIABILITY_INITIALIZER \ 289 NANO_XRCE_CLIENTLISTENER_INFO_INITIALIZER \ 290 NANO_XRCE_CLIENTLISTENER_DISCOVERY_INITIALIZER \ 294 #if NANO_FEAT_SUBSCRIBE 296 NANO_XRCE_ClientListener_on_data(
297 NANO_XRCE_ClientListener *
const self,
307 #define NANO_XRCE_ClientListener_on_data(s_,c_,st_,rr_,r_,f_,le_,d_,dl_)\ 309 if ((s_)->on_data != NULL)\ 311 (s_)->on_data((s_),(c_),(st_),(rr_),(r_),(f_),(le_),(d_),(dl_));\ 316 #if NANO_FEAT_RELIABILITY 317 #if NANO_FEAT_PUBLISH 319 NANO_XRCE_ClientListener_on_write_complete(
320 NANO_XRCE_ClientListener *
const self,
322 const NANO_XRCE_ClientRequest *
const write_req);
324 #define NANO_XRCE_ClientListener_on_write_complete(s_,c_,r_)\ 326 if ((s_)->on_write_complete != NULL)\ 328 (s_)->on_write_complete((s_),(c_),(r_));\ 334 NANO_XRCE_ClientListener_on_message_lost(
335 NANO_XRCE_ClientListener *
const self,
341 #define NANO_XRCE_ClientListener_on_message_lost(s_,c_,st_,l_,r_)\ 343 if ((s_)->on_message_lost != NULL)\ 345 (s_)->on_message_lost((s_),(c_),(st_),(l_),(r_));\ 351 #if NANO_FEAT_OBJECT_INFO 353 NANO_XRCE_ClientListener_on_info(
354 NANO_XRCE_ClientListener *
const self,
356 const NANO_XRCE_ObjectInfo *
const info);
358 #define NANO_XRCE_ClientListener_on_info(s_,c_,i_)\ 360 if ((s_)->on_info != NULL)\ 362 (s_)->on_info((s_),(c_),(i_));\ 367 #if NANO_FEAT_AGENT_DISCOVERY 369 NANO_XRCE_ClientListener_on_agent_discovered(
370 NANO_XRCE_ClientListener *
const self,
372 const NANO_XRCE_TransportLocator *
const agent_locator,
375 #define NANO_XRCE_ClientListener_on_agent_discovered(s_,c_,a_,sl_)\ 377 if ((s_)->on_agent_discovered != NULL)\ 379 (s_)->on_agent_discovered((s_),(c_),(a_),(sl_));\ 409 #define NANO_XRCE_REQUESTFLAGS_LITTLE_ENDIAN (0x01 << 0) 414 #define NANO_XRCE_REQUESTFLAGS_CREATE_REUSE (0x01 << 1) 419 #define NANO_XRCE_REQUESTFLAGS_CREATE_REPLACE (0x01 << 2) 424 #define NANO_XRCE_REQUESTFLAGS_CONFIRM (0x01 << 3) 429 #define NANO_XRCE_REQUESTFLAGS_SYNC (0x01 << 4) 434 #define NANO_XRCE_REQUESTFLAGS_ACKED (0x01 << 5) 439 #define NANO_XRCE_REQUESTFLAGS_DATA (0x01 << 6) 444 #define NANO_XRCE_REQUESTFLAGS_COMPLETE (0x01 << 7) 449 #define NANO_XRCE_REQUESTFLAGS_IN_USE (0x01 << 8) 454 #define NANO_XRCE_REQUESTFLAGS_CUSTOM_ENDIANNESS (0x01 << 9) 459 #define NANO_XRCE_REQUESTFLAGS_DEFAULT 0 462 struct NANODllExport NANO_XRCE_ClientRequestI
468 NANO_XRCE_ClientRequest *next;
478 NANO_XRCE_RequestFlags flags;
498 NANO_XRCE_SubmessageFlags submsg_flags;
503 NANO_XRCE_SubmessageId submsg_id;
515 NANO_XRCE_ClientRequestI()
522 submsg_flags(NANO_XRCE_SUBMESSAGEFLAGS_DEFAULT),
523 submsg_id(NANO_XRCE_SUBMESSAGEID_UNKNOWN),
533 #define NANO_XRCE_CLIENTREQUEST_INITIALIZER \ 537 NANO_XRCE_REQUESTFLAGS_DEFAULT, \ 538 NANO_XRCE_RESULTSTATUS_INITIALIZER, \ 539 NANO_XRCE_OBJECTID_INVALID, \ 540 NANO_XRCE_SEQNUM_INITIALIZER, \ 541 NANO_XRCE_SUBMESSAGEFLAGS_DEFAULT, \ 542 NANO_XRCE_SUBMESSAGEID_UNKNOWN, \ 543 NANO_XRCE_STREAMID_NONE \ 550 #define NANO_XRCE_ClientRequest_is_reliable(s_) \ 551 (NANO_XRCE_StreamId_is_reliable((s_)->stream_id)) 556 #define NANO_XRCE_ClientRequest_is_acked(s_) \ 557 ((s_)->flags & NANO_XRCE_REQUESTFLAGS_ACKED) 562 #define NANO_XRCE_ClientRequest_is_complete(s_) \ 563 (((s_)->flags & NANO_XRCE_REQUESTFLAGS_COMPLETE) &&\ 564 (!NANO_XRCE_ClientRequest_is_reliable(s_) ||\ 565 NANO_XRCE_ClientRequest_is_acked(s_))) 571 typedef struct NANO_XRCE_ClientRequestTokenI
599 #define NANO_XRCE_CLIENTREQUESTTOKEN_INITIALIZER \ 601 NANO_XRCE_REQUESTID_INVALID, \ 602 NANO_XRCE_OBJECTID_INVALID, \ 603 NANO_XRCE_SEQNUM_INITIALIZER, \ 604 NANO_XRCE_STREAMID_NONE \ 622 typedef struct NANODllExport NANO_XRCE_ClientRequestsStorageI
645 #define NANO_XRCE_CLIENTREQUESTSSTORAGE_INITIALIZER \ 656 #define NANO_XRCE_ClientRequestsStorage_initialize(s_, client_reqs_, client_reqs_max_) \ 658 (s_)->client_requests = (client_reqs_);\ 659 (s_)->client_requests_max = (client_reqs_max_);\ 660 (s_)->client_requests_len = 0;\ 667 #define NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_TYPE_MEMBERS(max_requests_) \ 668 NANO_XRCE_ClientRequestsStorage base;\ 669 NANO_XRCE_ClientRequest client_requests[max_requests_] 675 #define NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZER \ 677 NANO_XRCE_CLIENTREQUESTSSTORAGE_INITIALIZER, \ 678 { NANO_XRCE_CLIENTREQUEST_INITIALIZER } \ 685 #define NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZE(s_) \ 687 NANO_XRCE_ClientRequestsStorage_initialize(&(s_)->base,\ 688 (s_)->client_requests,\ 689 sizeof((s_)->client_requests) / sizeof(NANO_XRCE_ClientRequest));\ 706 typedef struct NANODllExport NANO_XRCE_ClientStorageI
716 #define NANO_XRCE_CLIENTSTORAGE_INITIALIZER \ 726 #define NANO_XRCE_ClientStorage_initialize(s_, reqs_, session_) \ 728 (s_)->requests = (reqs_);\ 729 (s_)->session = (session_);\ 740 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_TYPE_MEMBERS(base_type_name_,session_storage_) \ 741 NANO_XRCE_ClientStorage base;\ 742 xrce_str_concat(base_type_name_,ClientRequestsStorage) requests;\ 743 session_storage_ session 749 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_DEFINE_TYPES_W_SESSION(base_type_name_,max_requests_,session_storage_)\ 751 typedef struct xrce_str_concat(base_type_name_,ClientRequestsStorageI)\ 753 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_TYPE_MEMBERS(max_requests_);\ 754 NANO_XRCE_CUSTOMSTORAGE_CPP_CONSTRUCTOR(\ 755 xrce_str_concat(base_type_name_,ClientRequestsStorageI),\ 756 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZE(this);)\ 757 } xrce_str_concat(base_type_name_,ClientRequestsStorage);\ 759 typedef struct xrce_str_concat(base_type_name_,ClientStorageI)\ 761 NANO_XRCE_CUSTOMCLIENTSTORAGE_TYPE_MEMBERS(base_type_name_,session_storage_);\ 762 NANO_XRCE_CUSTOMSTORAGE_CPP_CONSTRUCTOR(\ 763 xrce_str_concat(base_type_name_,ClientStorageI),\ 764 NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE(this);)\ 765 } xrce_str_concat(base_type_name_,ClientStorage) 771 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_DEFINE_TYPES(base_type_name_,max_requests_,builtin_rel_send_queue_len_,builtin_rel_max_payload_in_,max_user_streams_be_,max_user_streams_rel_)\ 773 NANO_XRCE_CUSTOMSESSIONSTORAGE_DEFINE_TYPES(base_type_name_,builtin_rel_send_queue_len_,builtin_rel_max_payload_in_,max_user_streams_be_,max_user_streams_rel_) \ 775 NANO_XRCE_CUSTOMCLIENTSTORAGE_DEFINE_TYPES_W_SESSION(base_type_name_,max_requests_,xrce_str_concat(base_type_name_,SessionStorage)) 781 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER \ 782 NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER_W_SESSION(\ 783 NANO_XRCE_CUSTOMSESSIONSTORAGE_INITIALIZER) 789 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER_W_SESSION(session_initializer_) \ 791 NANO_XRCE_CLIENTSTORAGE_INITIALIZER, \ 792 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZER, \ 793 session_initializer_ \ 800 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE(s_) \ 801 NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE_W_SESSION(s_,\ 803 NANO_XRCE_CUSTOMSESSIONSTORAGE_INITIALIZE(&(s_)->session);\ 810 #define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE_W_SESSION(s_,session_init_) \ 812 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZE(&(s_)->requests);\ 814 NANO_XRCE_ClientStorage_initialize(&(s_)->base,\ 815 &(s_)->requests.base, &(s_)->session.base);\ 826 #define NANO_XRCE_DefaultClientStorage_initialize(s_) \ 827 NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE(s_) 833 NANO_XRCE_DefaultSessionStorage);
839 #define NANO_XRCE_DEFAULTCLIENTSTORAGE_INITIALIZER \ 840 NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER 846 #if NANO_FEAT_RELIABILITY 847 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_TYPE_MEMBERS(base_type_name_) \ 848 NANO_XRCE_StreamStorage builtin_rel; 849 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZER \ 850 NANO_XRCE_STREAMSTORAGE_INITIALIZER, 851 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZE(s_) \ 853 (s_)->builtin_rel = (s_)->messages.base;\ 855 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZE_ARG(s_) \ 858 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_TYPE_MEMBERS(base_type_name_) 859 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZER 860 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZE(s_) 861 #define NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZE_ARG(s_) \ 865 #if NANO_FEAT_SESSION_USER_STREAMS 866 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_DEFINE_TYPE(base_type_name_,max_streams_be_, max_streams_rel_)\ 867 typedef struct xrce_str_concat(base_type_name_,UserStreamsStorageI)\ 869 NANO_XRCE_CUSTOMUSERSTREAMSSTORAGE_TYPE_MEMBERS(max_streams_be_, max_streams_rel_);\ 870 } xrce_str_concat(base_type_name_,UserStreamsStorage); 871 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_TYPE_MEMBERS(base_type_name_) \ 872 xrce_str_concat(base_type_name_,UserStreamsStorage) streams; 873 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZER \ 874 NANO_XRCE_CUSTOMUSERSTREAMSSTORAGE_INITIALIZER, 875 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZE(s_) \ 877 NANO_XRCE_CUSTOMUSERSTREAMSSTORAGE_INITIALIZE(&(s_)->streams);\ 879 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZE_ARG(s_) \ 882 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_DEFINE_TYPE(base_type_name_,max_streams_be_, max_streams_rel_) 883 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_TYPE_MEMBERS(base_type_name_) 884 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZER 885 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZE(s_) 886 #define NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZE_ARG(s_) \ 895 #define NANO_XRCE_SIMPLECLIENTSTORAGE_TYPE_MEMBERS(base_type_name_) \ 896 NANO_XRCE_ClientStorage base;\ 897 NANO_XRCE_SessionStorage session;\ 898 NANO_XRCE_StreamStorage builtin_be;\ 899 NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_TYPE_MEMBERS(base_type_name_) \ 900 xrce_str_concat(base_type_name_,ClientRequestsStorage) requests;\ 901 NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_TYPE_MEMBERS(base_type_name_) \ 902 xrce_str_concat(base_type_name_,StreamStorage) messages 908 #define NANO_XRCE_SIMPLECLIENTSTORAGE_DEFINE_TYPES(base_type_name_,max_requests_,max_messages_,max_streams_be_,max_streams_rel_)\ 910 typedef struct xrce_str_concat(base_type_name_,ClientRequestsStorageI)\ 912 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_TYPE_MEMBERS(max_requests_);\ 913 } xrce_str_concat(base_type_name_,ClientRequestsStorage);\ 915 NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_DEFINE_TYPE(base_type_name_,max_streams_be_, max_streams_rel_)\ 917 typedef struct xrce_str_concat(base_type_name_,StreamStorageI)\ 919 NANO_XRCE_CUSTOMSTREAMSTORAGE_TYPE_MEMBERS(\ 922 ((max_messages_ >= 2)?(max_messages_/2):max_messages_) ,\ 923 (max_messages_ * 2) ,\ 925 } xrce_str_concat(base_type_name_,StreamStorage);\ 927 typedef struct xrce_str_concat(base_type_name_,ClientStorageI)\ 929 NANO_XRCE_SIMPLECLIENTSTORAGE_TYPE_MEMBERS(base_type_name_);\ 930 NANO_XRCE_CUSTOMSTORAGE_CPP_CONSTRUCTOR(\ 931 xrce_str_concat(base_type_name_,ClientStorageI),\ 932 NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZE(this);)\ 933 } xrce_str_concat(base_type_name_,ClientStorage) 939 #define NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZER \ 941 NANO_XRCE_CLIENTSTORAGE_INITIALIZER, \ 942 NANO_XRCE_SESSIONSTORAGE_INITIALIZER, \ 943 NANO_XRCE_STREAMSTORAGE_INITIALIZER, \ 944 NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZER \ 945 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZER, \ 946 NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZER \ 947 NANO_XRCE_CUSTOMSTREAMSTORAGE_INITIALIZER \ 954 #define NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZE(s_) \ 956 NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZE(&(s_)->requests);\ 957 NANO_XRCE_CUSTOMSTREAMSTORAGE_INITIALIZE(&(s_)->messages);\ 958 (s_)->builtin_be = (s_)->messages.base;\ 959 NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZE(s_)\ 960 NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZE(s_)\ 961 NANO_XRCE_SessionStorage_initialize(\ 964 NANO_XRCE_SIMPLECLIENTSTORAGE_RELIABILITY_INITIALIZE_ARG(s_),\ 965 NANO_XRCE_SIMPLECLIENTSTORAGE_USER_STREAMS_INITIALIZE_ARG(s_));\ 966 NANO_XRCE_ClientStorage_initialize(\ 968 &(s_)->requests.base,\ 976 #define NANO_XRCE_DefaultSimpleClientStorage_initialize(s_) \ 977 NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZE(s_) 980 NANO_XRCE_DefaultSimple,
990 #define NANO_XRCE_DEFAULTSIMPLECLIENTSTORAGE_INITIALIZER \ 991 NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZER 1008 typedef struct NANODllExport NANO_XRCE_ClientPropertiesI
1010 #ifdef NANO_HAVE_CLIENT_LISTENER 1042 #if NANO_FEAT_AGENT_DISCOVERY 1049 #if NANO_FEAT_RELIABILITY && NANO_FEAT_SYSTIME 1067 NANO_XRCE_ClientPropertiesI():
1070 transport_properties(),
1073 include_key_in_messages(
1075 #if NANO_FEAT_AGENT_DISCOVERY
1079 #if NANO_FEAT_RELIABILITY && NANO_FEAT_SYSTIME
1085 NANO_LIMIT_SESSION_ACKNACK_PERIOD_DEFAULT_SEC,
1086 NANO_LIMIT_SESSION_ACKNACK_PERIOD_DEFAULT_NSEC)
1094 #ifdef NANO_HAVE_CLIENT_LISTENER 1095 #define NANO_XRCE_CLIENTPROPERTIES_LISTENER_INITIALIZER \ 1096 NANO_XRCE_CLIENTLISTENER_INITIALIZER, 1098 #define NANO_XRCE_CLIENTPROPERTIES_LISTENER_INITIALIZER 1101 #if NANO_FEAT_AGENT_DISCOVERY 1102 #define NANO_XRCE_CLIENTPROPERTIES_DISCOVERY_INITIALIZER \ 1106 #define NANO_XRCE_CLIENTPROPERTIES_DISCOVERY_INITIALIZER 1109 #if NANO_FEAT_RELIABILITY && NANO_FEAT_SYSTIME 1110 #define NANO_XRCE_CLIENTPROPERTIES_PERIOD_INITIALIZER \ 1113 NANO_LIMIT_SESSION_HEARTBEAT_PERIOD_DEFAULT_SEC,\ 1114 NANO_LIMIT_SESSION_HEARTBEAT_PERIOD_DEFAULT_NSEC \ 1117 NANO_LIMIT_SESSION_ACKNACK_PERIOD_DEFAULT_SEC,\ 1118 NANO_LIMIT_SESSION_ACKNACK_PERIOD_DEFAULT_NSEC \ 1121 #define NANO_XRCE_CLIENTPROPERTIES_PERIOD_INITIALIZER 1128 #define NANO_XRCE_CLIENTPROPERTIES_INITIALIZER \ 1130 NANO_XRCE_CLIENTPROPERTIES_LISTENER_INITIALIZER \ 1134 NANO_XRCE_CLIENTKEY_INVALID, \ 1135 NANO_LIMIT_CLIENT_INCLUDE_KEY_IN_MESSAGE_DEFAULT \ 1136 NANO_XRCE_CLIENTPROPERTIES_DISCOVERY_INITIALIZER \ 1137 NANO_XRCE_CLIENTPROPERTIES_PERIOD_INITIALIZER \ 1150 typedef NANO_u8 NANO_XRCE_ClientFlags;
1156 #define NANO_XRCE_CLIENTFLAGS_DEFAULT (0) 1161 #define NANO_XRCE_CLIENTFLAGS_CONNECTED (0x01 << 0) 1166 #define NANO_XRCE_CLIENTFLAGS_CONNECTING (0x01 << 1) 1171 #define NANO_XRCE_CLIENTFLAGS_DISCOVERING (0x01 << 2) 1186 typedef struct NANODllExport NANO_XRCE_ClientI
1193 #ifdef NANO_HAVE_CLIENT_LISTENER 1198 NANO_XRCE_ClientListener listener;
1204 NANO_XRCE_Session session;
1209 NANO_XRCE_ClientFlags flags;
1219 NANO_XRCE_ClientRequest *pending_requests;
1229 #ifdef NANO_HAVE_CLIENT_LISTENER 1233 flags(NANO_XRCE_CLIENTFLAGS_DEFAULT),
1235 pending_requests(NULL)
1243 #ifdef NANO_HAVE_CLIENT_LISTENER 1244 #define NANO_XRCE_CLIENT_LISTENER_INITIALIZER \ 1245 NANO_XRCE_CLIENTLISTENER_INITIALIZER, 1247 #define NANO_XRCE_CLIENT_LISTENER_INITIALIZER 1254 #define NANO_XRCE_CLIENT_INITIALIZER \ 1257 NANO_XRCE_CLIENT_LISTENER_INITIALIZER \ 1258 NANO_XRCE_SESSION_INITIALIZER, \ 1259 NANO_XRCE_CLIENTFLAGS_DEFAULT, \ 1285 #define NANO_XRCE_Client_finalize(s_) \ 1287 NANO_XRCE_Session_finalize(&(s_)->session);\ 1298 #define NANO_XRCE_Client_mark_connected(s_) \ 1300 (s_)->flags |= NANO_XRCE_CLIENTFLAGS_CONNECTED;\ 1301 NANO_XRCE_Session_connected(&(s_)->session);\ 1323 #define NANO_XRCE_Client_connected(s_) \ 1324 ((s_)->flags & NANO_XRCE_CLIENTFLAGS_CONNECTED) 1335 #define NANO_XRCE_Client_discovering(s_) \ 1336 ((s_)->flags & NANO_XRCE_CLIENTFLAGS_DISCOVERING) 1357 typedef struct NANODllExport NANO_XRCE_RequestArgsI
1385 NANO_XRCE_RequestArgsI()
1400 #define NANO_XRCE_REQUESTARGS_INITIALIZER \ 1402 NANO_TIMEOUT_INFINITE, \ 1403 NANO_XRCE_OBJECTID_INVALID, \ 1404 NANO_XRCE_STREAMID_NONE, \ 1405 NANO_XRCE_REQUESTFLAGS_DEFAULT \ 1408 #if NANO_FEAT_OBJECT_CREATE 1415 typedef struct NANODllExport NANO_XRCE_CreateArgsI
1463 NANO_XRCE_CreateArgsI()
1474 #define NANO_XRCE_CREATEARGS_INITIALIZER \ 1476 NANO_XRCE_REQUESTARGS_INITIALIZER, \ 1477 NANO_XRCE_OBJK_INVALID, \ 1478 NANO_XRCE_REPRESENTATION_INVALID, \ 1489 #if NANO_FEAT_PUBLISH 1495 typedef struct NANODllExport NANO_XRCE_WriteArgsI
1518 NANO_XRCE_WriteArgsI()
1532 #define NANO_XRCE_WRITEARGS_INITIALIZER \ 1534 NANO_XRCE_REQUESTARGS_INITIALIZER, \ 1535 NANO_XRCE_FORMAT_INVALID, \ 1541 #if NANO_FEAT_SUBSCRIBE 1547 typedef struct NANODllExport NANO_XRCE_ReadArgsI
1564 NANO_XRCE_ReadArgsI()
1577 #define NANO_XRCE_READARGS_INITIALIZER \ 1579 NANO_XRCE_REQUESTARGS_INITIALIZER, \ 1580 NANO_XRCE_READSPECIFICATION_INITIALIZER \ 1620 const NANO_XRCE_RequestFlags request_flags,
1650 #if NANO_FEAT_OBJECT_CREATE 1667 #if NANO_FEAT_OBJECT_DELETE 1717 #if NANO_FEAT_RELIABILITY 1735 #if NANO_FEAT_PUBLISH 1737 #if NANO_FEAT_EXTENDED_API 1768 NANO_MessageBuffer *
const mbuf);
1770 #if NANO_FEAT_DATA_FORMAT_DATA 1790 const NANO_XRCE_RequestFlags request_flags,
1815 #if NANO_FEAT_SUBSCRIBE 1817 #if NANO_FEAT_EXTENDED_API 1839 const NANO_XRCE_RequestFlags request_flags,
1844 const char *
const content_filter);
1865 #if NANO_FEAT_AGENT_DISCOVERY 1878 const NANO_XRCE_ClientTransportLocatorType locator_type,
1879 const NANO_XRCE_TransportLocator *
const locator);
1897 #if NANO_FEAT_EXTENDED_API 1899 #if NANO_FEAT_OBJECT_CREATE 1920 const NANO_XRCE_RequestFlags request_flags,
1925 const char *
const object_xml_repr);
1947 const NANO_XRCE_RequestFlags request_flags,
1952 const char *
const object_ref);
1954 #if NANO_FEAT_OBJECT_KIND_PARTICIPANT 1972 const NANO_XRCE_RequestFlags request_flags,
1975 const char *
const object_xml_repr);
1977 #define NANO_XRCE_Client_create_participant_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_) \ 1978 NANO_XRCE_Client_create_object_xml(\ 1984 NANO_XRCE_OBJK_PARTICIPANT,\ 2006 const NANO_XRCE_RequestFlags request_flags,
2009 const char *
const object_ref);
2011 #define NANO_XRCE_Client_register_participant(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_ref_) \ 2012 NANO_XRCE_Client_register_object(\ 2018 NANO_XRCE_OBJK_PARTICIPANT,\ 2025 #if NANO_FEAT_OBJECT_KIND_TOPIC 2044 const NANO_XRCE_RequestFlags request_flags,
2047 const char *
const object_xml_repr,
2050 #define NANO_XRCE_Client_create_topic_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_, p_id_) \ 2051 NANO_XRCE_Client_create_object_xml(\ 2057 NANO_XRCE_OBJK_TOPIC,\ 2079 const NANO_XRCE_RequestFlags request_flags,
2082 const char *
const object_ref);
2084 #define NANO_XRCE_Client_register_topic(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_ref_) \ 2085 NANO_XRCE_Client_register_object(\ 2091 NANO_XRCE_OBJK_TOPIC,\ 2098 #if NANO_FEAT_OBJECT_KIND_PUBLISHER 2117 const NANO_XRCE_RequestFlags request_flags,
2120 const char *
const object_xml_repr,
2123 #define NANO_XRCE_Client_create_publisher_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_, p_id_) \ 2124 NANO_XRCE_Client_create_object_xml(\ 2130 NANO_XRCE_OBJK_PUBLISHER,\ 2152 const NANO_XRCE_RequestFlags request_flags,
2155 const char *
const object_ref);
2157 #define NANO_XRCE_Client_register_publisher(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_ref_) \ 2158 NANO_XRCE_Client_register_object(\ 2164 NANO_XRCE_OBJK_PUBLISHER,\ 2171 #if NANO_FEAT_OBJECT_KIND_SUBSCRIBER 2190 const NANO_XRCE_RequestFlags request_flags,
2193 const char *
const object_xml_repr,
2196 #define NANO_XRCE_Client_create_subscriber_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_, p_id_) \ 2197 NANO_XRCE_Client_create_object_xml(\ 2203 NANO_XRCE_OBJK_SUBSCRIBER,\ 2225 const NANO_XRCE_RequestFlags request_flags,
2228 const char *
const object_ref);
2230 #define NANO_XRCE_Client_register_subscriber(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_ref_) \ 2231 NANO_XRCE_Client_register_object(\ 2237 NANO_XRCE_OBJK_SUBSCRIBER,\ 2244 #if NANO_FEAT_OBJECT_KIND_DATAWRITER 2263 const NANO_XRCE_RequestFlags request_flags,
2266 const char *
const object_xml_repr,
2269 #define NANO_XRCE_Client_create_datawriter_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_, p_id_) \ 2270 NANO_XRCE_Client_create_object_xml(\ 2276 NANO_XRCE_OBJK_DATAWRITER,\ 2298 const NANO_XRCE_RequestFlags request_flags,
2301 const char *
const object_ref);
2303 #define NANO_XRCE_Client_register_datawriter(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_ref_) \ 2304 NANO_XRCE_Client_register_object(\ 2310 NANO_XRCE_OBJK_DATAWRITER,\ 2317 #if NANO_FEAT_OBJECT_KIND_DATAREADER 2336 const NANO_XRCE_RequestFlags request_flags,
2339 const char *
const object_xml_repr,
2342 #define NANO_XRCE_Client_create_datareader_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_, s_id_) \ 2343 NANO_XRCE_Client_create_object_xml(\ 2349 NANO_XRCE_OBJK_DATAREADER,\ 2371 const NANO_XRCE_RequestFlags request_flags,
2374 const char *
const object_ref);
2376 #define NANO_XRCE_Client_register_datareader(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_ref_) \ 2377 NANO_XRCE_Client_register_object(\ 2383 NANO_XRCE_OBJK_DATAREADER,\ 2390 #if NANO_FEAT_OBJECT_KIND_APPLICATION 2408 const NANO_XRCE_RequestFlags request_flags,
2411 const char *
const object_xml_repr);
2413 #define NANO_XRCE_Client_create_application_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_) \ 2414 NANO_XRCE_Client_create_object_xml(\ 2420 NANO_XRCE_OBJK_APPLICATION,\ 2427 #if NANO_FEAT_OBJECT_KIND_DOMAIN 2445 const NANO_XRCE_RequestFlags request_flags,
2448 const char *
const object_xml_repr);
2450 #define NANO_XRCE_Client_create_domain_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_) \ 2451 NANO_XRCE_Client_create_object_xml(\ 2457 NANO_XRCE_OBJK_TOPIC,\ 2464 #if NANO_FEAT_OBJECT_KIND_TYPE 2482 const NANO_XRCE_RequestFlags request_flags,
2485 const char *
const object_xml_repr);
2487 #define NANO_XRCE_Client_create_type_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_) \ 2488 NANO_XRCE_Client_create_object_xml(\ 2494 NANO_XRCE_OBJK_TYPE,\ 2501 #if NANO_FEAT_OBJECT_KIND_QOSPROFILE 2519 const NANO_XRCE_RequestFlags request_flags,
2522 const char *
const object_xml_repr);
2524 #define NANO_XRCE_Client_create_qosprofile_xml(s_, r_tkn_, r_st_, r_f_, r_t_, o_id_, o_xml_) \ 2525 NANO_XRCE_Client_create_object_xml(\ 2531 NANO_XRCE_OBJK_QOSPROFILE,\ 2540 #if NANO_FEAT_FRAGMENT && NANO_FEAT_RELIABILITY 2558 #define NANO_XRCE_Client_fragment_reconstruction_buffer(s_, s_id_, b_, b_sz_) \ 2559 NANO_XRCE_Session_register_reliable_stream_fragment_storage(\ 2562 NANO_XRCE_MESSAGETYPE_FRAGMENT_RECV_BUFFER,\ 2569 #ifdef NANO_HAVE_CLIENT_LISTENER 2570 #if NANO_FEAT_SUBSCRIBE 2582 void *
const listener_ctx);
2584 #define NANO_XRCE_Client_on_data(s_, on_data_, ctx_) \ 2586 (s_)->listener.on_data = (on_data_);\ 2587 (s_)->listener.user_data = (ctx_);\ 2593 #if NANO_FEAT_SESSION_USER_STREAMS 2608 #define NANO_XRCE_Client_enable_stream(s_, s_id_, st_) \ 2609 NANO_XRCE_Session_register_stream(\ 2616 #if NANO_FEAT_ASSERT_LIVELINESS 2628 #define NANO_XRCE_Client_liveliness_assertion_period(s_,p_) \ 2630 (s_)->session.period_liveliness = (p_);\ 2650 #define NANO_XRCE_Client_run_session(s_, max_msg_, timeout_)\ 2651 NANO_XRCE_Session_run(&(s_)->session, (max_msg_), (timeout_)) #define NANO_LIMIT_CLIENT_MAX_PENDING_REQUESTS
Default maximum number of pending requests for a client.
Definition: nano_client_config.h:64
NANO_XRCE_ObjectKind obj_kind
TODO.
Definition: nano_client.h:1426
NANO_RetCode NANO_XRCE_Client_wait_for_data_received(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_Timeout wait_timeout_ms)
TODO.
NANO_RetCode NANO_XRCE_Client_update_locator(NANO_XRCE_Client *const self, const NANO_XRCE_ClientTransportLocatorType locator_type, const NANO_XRCE_TransportLocator *const locator)
TODO.
NANO_RetCode NANO_XRCE_Client_announce(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_RequestArgs *const args)
TODO.
void NANO_XRCE_Client_mark_disconnected(NANO_XRCE_Client *const self)
TODO.
NANO_RetCode NANO_XRCE_Client_register_publisher(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_ref)
TODO.
TODO.
Definition: nano_client.h:1357
NANO_XRCE_ClientRequest * client_requests
TODO.
Definition: nano_client.h:628
void(* NANO_XRCE_ClientListener_OnInfoFn)(NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_ObjectInfo *const info)
TODO.
Definition: nano_client.h:152
NANO_bool NANO_XRCE_Client_discovering(const NANO_XRCE_Client *const self)
TODO.
NANO_Timeout timeout_ms
TODO.
Definition: nano_client.h:1363
NANO_RetCode NANO_XRCE_Client_create_object_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_XRCE_ObjectKind object_kind, const NANO_u16 object_id, const NANO_u16 parent_id, const char *const object_xml_repr)
TODO.
NANO_RetCode NANO_XRCE_Client_create_publisher_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr, const NANO_u16 participant_id)
TODO.
NANO_RetCode NANO_XRCE_Client_register_participant(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_ref)
TODO.
TODO.
Definition: nano_client.h:571
NANO_RetCode NANO_XRCE_Client_read_w_args(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_ReadArgs *const args)
TODO.
NANO_RetCode
An enumeration of return codes to convery the outcome for all NANO operations.
Definition: nano_core_osapi.h:51
struct NANO_XRCE_ClientI NANO_XRCE_Client
An object used to establish a session on a remote XRCE Agent and access its services.
Definition: nano_client.h:49
NANO_XRCE_ClientListener_OnWriteComplete on_write_complete
TODO.
Definition: nano_client.h:194
NANO_XRCE_ObjectId object_id
TODO.
Definition: nano_client.h:582
NANO_MessageBuffer * NANO_XRCE_Client_allocate_message_buffer(NANO_XRCE_Client *const self, const NANO_XRCE_StreamId stream_id, const NANO_u8 *const payload, const NANO_u16 payload_len)
TODO.
void NANO_XRCE_Client_drop_requests(NANO_XRCE_Client *const self)
TODO.
#define NANO_TIMEOUT_INFINITE
TODO.
Definition: nano_core_osapi.h:1136
void * user_data
TODO.
Definition: nano_client.h:220
#define NANO_LIMIT_RELIABLESTREAM_SENDQUEUE_MAX_LENGTH
Maximum number of unacknowledged output messages stored by a reliable XRCE stream.
Definition: nano_core_config.h:712
NANO_RetCode NANO_XRCE_Client_register_datareader(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_ref)
TODO.
#define NANO_LIMIT_CLIENT_INCLUDE_KEY_IN_MESSAGE_DEFAULT
TODO.
Definition: nano_client_config.h:72
TODO.
Definition: nano_client.h:1008
A data type to convey the outcome of an XRCE operation.
Definition: nano_core_xrce_basic.h:132
void NANO_XRCE_Client_dismiss_request(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token)
TODO.
#define NANO_LIMIT_SESSION_MAX_USER_STREAMS_BESTEFFORT
Maximum number of best-effort “user streams” that may be registered on an XRCE session.
Definition: nano_core_config.h:741
NANO_XRCE_ClientTransport * transport
TODO.
Definition: nano_client.h:1021
NANO_RetCode NANO_XRCE_Client_connect(NANO_XRCE_Client *const self, const NANO_Timeout timeout_ms)
TODO.
void NANO_XRCE_Client_liveliness_assertion_period(NANO_XRCE_Client *const self, const NANO_u64 period)
TODO.
NANO_RetCode NANO_XRCE_Client_create_topic_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr, const NANO_u16 participant_id)
TODO.
NANO_Time heartbeat_period
TODO.
Definition: nano_client.h:1054
NANO_RetCode NANO_XRCE_Client_create_datawriter_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr, const NANO_u16 publisher_id)
TODO.
NANO_RetCode NANO_XRCE_Client_create_type_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr)
TODO.
Identifier for implementors of the XRCE protocol.
Definition: nano_core_xrce_basic.h:525
NANO_XRCE_ClientTransportProperties * transport_properties
TODO.
Definition: nano_client.h:1026
NANO_RetCode NANO_XRCE_Client_release_message_buffer(NANO_XRCE_Client *const self, const NANO_XRCE_StreamId stream_id, NANO_MessageBuffer *const mbuf)
TODO.
NANO_XRCE_ClientStorage * storage
TODO.
Definition: nano_client.h:1031
NANO_XRCE_ReadSpecification read_spec
TODO.
Definition: nano_client.h:1558
NANO_Time acknack_period
TODO.
Definition: nano_client.h:1059
NANO_RetCode NANO_XRCE_Client_register_topic(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_ref)
TODO.
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_DEFINE_TYPES_W_SESSION(base_type_name_, max_requests_, session_storage_)
TODO.
Definition: nano_client.h:749
NANO_XRCE_RequestId request_id
TODO.
Definition: nano_client.h:577
void NANO_XRCE_Client_finalize(NANO_XRCE_Client *const self)
TODO.
TODO.
Definition: nano_client.h:1547
NANO_usize client_requests_len
TODO.
Definition: nano_client.h:633
NANO_RetCode NANO_XRCE_Client_delete_object_w_args(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_RequestArgs *const args)
TODO.
NANO_XRCE_ClientListener_OnInfoFn on_info
TODO.
Definition: nano_client.h:207
#define NANO_LIMIT_SESSION_HEARTBEAT_PERIOD_DEFAULT_SEC
Default period for periodic HEARTBEAT messages (seconds component)
Definition: nano_core_config.h:777
TODO.
Definition: nano_core_xrce_basic.h:954
#define NANO_XRCE_SIMPLECLIENTSTORAGE_DEFINE_TYPES(base_type_name_, max_requests_, max_messages_, max_streams_be_, max_streams_rel_)
TODO.
Definition: nano_client.h:908
const NANO_u8 * repr
TODO.
Definition: nano_client.h:1436
#define NANO_LIMIT_SESSION_HEARTBEAT_PERIOD_DEFAULT_NSEC
Default period for periodic HEARTBEAT messages (nanoseconds component)
Definition: nano_core_config.h:784
NANO_RetCode NANO_XRCE_Client_fragment_reconstruction_buffer(NANO_XRCE_Client *const self, const NANO_XRCE_StreamId stream_id, NANO_u8 *const buffer, const NANO_usize buffer_size)
TODO.
NANO_RetCode NANO_XRCE_Client_wait_for_request_acked(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_Timeout wait_timeout_ms)
TODO.
NANO_RetCode NANO_XRCE_Client_initialize(NANO_XRCE_Client *const self, const NANO_XRCE_ClientProperties *const properties)
TODO.
TODO.
Definition: nano_core_xrce_message.h:47
TODO.
Definition: nano_core_xrce_message.h:357
#define NANO_XRCE_REQUESTFLAGS_DEFAULT
TODO.
Definition: nano_client.h:459
A sequence number type as defined by IETF RFC-1982 with SERIAL_BITS set to 16.
Definition: nano_core_xrce_basic.h:843
NANO_MessageBuffer * payload
TODO.
Definition: nano_client.h:1511
NANO_RetCode NANO_XRCE_Client_register_subscriber(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_ref)
TODO.
NANO_XRCE_RequestFlags flags
TODO.
Definition: nano_client.h:1378
NANO_bool include_key_in_messages
TODO.
Definition: nano_client.h:1041
NANO_XRCE_ObjectId obj_id
TODO.
Definition: nano_client.h:1368
const NANO_u8 * tail_data
TODO.
Definition: nano_client.h:1446
NANO_u8 NANO_XRCE_StreamId
Identifier for streams of XRCE messages.
Definition: nano_core_xrce_basic.h:746
NANO_RetCode NANO_XRCE_Client_register_datawriter(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_ref)
TODO.
NANO_XRCE_StreamId stream_id
TODO.
Definition: nano_client.h:1373
NANO_usize tail_data_len
TODO.
Definition: nano_client.h:1451
NANO_XRCE_DataFormat format
TODO.
Definition: nano_client.h:1506
TODO.
Definition: nano_client.h:622
void(* NANO_XRCE_ClientListener_OnMessageLostFn)(NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_StreamId stream_id, const NANO_XRCE_SeqNum lost, const NANO_XRCE_ReliableMessageLostReason reason)
TODO.
Definition: nano_client.h:134
void(* NANO_XRCE_ClientListener_OnWriteComplete)(NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_ClientRequest *const write_req)
TODO.
Definition: nano_client.h:118
NANO_RetCode NANO_XRCE_Client_create_participant_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr)
TODO.
#define NANO_XRCE_FORMAT_INVALID
TODO.
Definition: nano_core_xrce_message.h:230
A type to represent time-stamps and time durations.
Definition: nano_core_osapi.h:1145
#define NANO_XRCE_STREAMID_NONE
Constant to indicate the absence of a stream.
Definition: nano_core_xrce_basic.h:759
NANO_XRCE_RequestArgs req
TODO.
Definition: nano_client.h:1501
NANO_XRCE_StreamId stream_id
TODO.
Definition: nano_client.h:592
TODO.
Definition: nano_client.h:179
NANO_RetCode NANO_XRCE_Client_write_w_args(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_WriteArgs *const args)
TODO.
NANO_usize repr_len
TODO.
Definition: nano_client.h:1441
NANO_RetCode NANO_XRCE_Client_disconnect(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms)
TODO.
NANO_u8 NANO_XRCE_DataFormat
Identifier for the type of formatting of user data.
Definition: nano_core_xrce_message.h:216
NANO_RetCode NANO_XRCE_Client_register_object(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_XRCE_ObjectKind object_kind, const NANO_u16 object_id, const NANO_u16 parent_id, const char *const object_ref)
TODO.
TODO.
Definition: nano_core_xrce_session.h:1490
NANO_bool NANO_CDR_Endianness
TODO.
Definition: nano_core_cdr_basic.h:36
TODO.
Definition: nano_client.h:706
TODO.
Definition: nano_client.h:1415
NANO_i32 NANO_Timeout
TODO.
Definition: nano_core_osapi.h:1130
NANO_XRCE_ClientListener_OnMessageLostFn on_message_lost
TODO.
Definition: nano_client.h:200
NANO_RetCode NANO_XRCE_Client_run_session(NANO_XRCE_Client *const self, const NANO_usize max_messages, const NANO_Timeout timeout_ms)
TODO.
NANO_XRCE_ReliableMessageLostReason
TODO.
Definition: nano_core_xrce_session.h:1044
void NANO_XRCE_Client_mark_connected(NANO_XRCE_Client *const self)
TODO.
NANO_RetCode NANO_XRCE_Client_create_datareader_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr, const NANO_u16 subscriber_id)
TODO.
void(* NANO_XRCE_ClientListener_OnAgentDiscoveredFn)(NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_TransportLocator *const agent_locator, NANO_bool *const select)
TODO.
Definition: nano_client.h:168
NANO_RetCode NANO_XRCE_Client_create_object_w_args(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_CreateArgs *const args)
TODO.
TODO.
Definition: nano_core_xrce_message.h:276
#define NANO_LIMIT_SESSION_MAX_USER_STREAMS_RELIABLE
Maximum number of reliable “user streams” that may be registered on an XRCE session.
Definition: nano_core_config.h:732
NANO_RetCode NANO_XRCE_Client_wait_for_request_complete(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_Timeout wait_timeout_ms, NANO_XRCE_ResultStatus *const request_result_out)
TODO.
NANO_u8 NANO_XRCE_RepresentationFormat
TODO.
Definition: nano_core_xrce_repr.h:36
NANO_RetCode NANO_XRCE_Client_create_application_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr)
TODO.
NANO_u16 NANO_XRCE_RequestFlags
TODO.
Definition: nano_client.h:403
NANO_XRCE_RequestArgs req
TODO.
Definition: nano_client.h:1553
NANO_RetCode NANO_XRCE_Client_create_subscriber_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr, const NANO_u16 participant_id)
TODO.
NANO_XRCE_ClientKey key
TODO.
Definition: nano_client.h:1036
NANO_XRCE_ClientListener_OnDataFn on_data
TODO.
Definition: nano_client.h:186
void NANO_XRCE_Client_on_data(NANO_XRCE_Client *const self, NANO_XRCE_ClientListener_OnDataFn on_data, void *const listener_ctx)
TODO.
NANO_RetCode NANO_XRCE_Client_create_qosprofile_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr)
TODO.
NANO_XRCE_ClientListener_OnAgentDiscoveredFn on_agent_discovered
TODO.
Definition: nano_client.h:214
void(* NANO_XRCE_ClientListener_OnDataFn)(NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_StreamId stream_id, const NANO_XRCE_RequestId *const read_request, const NANO_XRCE_ObjectId *const reader, const NANO_XRCE_DataFormat format, const NANO_CDR_Endianness endianness, const NANO_u8 *const data, const NANO_usize data_len)
TODO.
Definition: nano_client.h:97
TODO.
Definition: nano_client.h:1495
NANO_usize tail_data_align
TODO.
Definition: nano_client.h:1456
NANO_RetCode NANO_XRCE_Client_enable_stream(NANO_XRCE_Client *const self, const NANO_XRCE_StreamId stream_id, NANO_XRCE_ClientStorage *const storage)
TODO.
NANO_RetCode NANO_XRCE_Client_read_data(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 reader_id, const NANO_XRCE_StreamId read_stream, const NANO_XRCE_DataDeliveryControl *const data_delivery_ctrl, const char *const content_filter)
TODO.
NANO_bool NANO_XRCE_Client_connected(const NANO_XRCE_Client *const self)
TODO.
NANO_XRCE_RepresentationFormat repr_fmt
TODO.
Definition: nano_client.h:1431
NANO_XRCE_RequestArgs req
TODO.
Definition: nano_client.h:1421
NANO_usize client_requests_max
TODO.
Definition: nano_client.h:638
NANO_bool enable_discovery
TODO.
Definition: nano_client.h:1047
NANO_u8 NANO_XRCE_ObjectKind
A type to represent the different kinds of XRCE objects.
Definition: nano_core_xrce_basic.h:421
NANO_RetCode NANO_XRCE_Client_write_data(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 writer_id, const NANO_u8 *const payload, const NANO_u16 payload_len)
TODO.
NANO_RetCode NANO_XRCE_Client_create_domain_xml(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_StreamId request_stream, const NANO_XRCE_RequestFlags request_flags, const NANO_Timeout request_timeout_ms, const NANO_u16 object_id, const char *const object_xml_repr)
TODO.
NANO_XRCE_SeqNum sn
TODO.
Definition: nano_client.h:587
NANO_RetCode NANO_XRCE_Client_disconnect_w_args(NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_RequestArgs *const args)
TODO.
NANO_XRCE_ClientListener listener
TODO.
Definition: nano_client.h:1015