nano-client API Reference
nano_client.h File Reference

nano-client API. More...

Include dependency graph for nano_client.h:

Go to the source code of this file.

Data Structures

struct  NANO_XRCE_ClientListener
 TODO. More...
 
struct  NANO_XRCE_ClientProperties
 TODO. More...
 
struct  NANO_XRCE_ClientRequestsStorage
 TODO. More...
 
struct  NANO_XRCE_ClientRequestToken
 TODO. More...
 
struct  NANO_XRCE_ClientStorage
 TODO. More...
 
struct  NANO_XRCE_CreateArgs
 TODO. More...
 
struct  NANO_XRCE_ReadArgs
 TODO. More...
 
struct  NANO_XRCE_RequestArgs
 TODO. More...
 
struct  NANO_XRCE_WriteArgs
 TODO. More...
 

Macros

#define NANO_XRCE_CLIENT_INITIALIZER
 TODO.
 
#define NANO_XRCE_CLIENTLISTENER_INITIALIZER
 TODO.
 
#define NANO_XRCE_CLIENTPROPERTIES_INITIALIZER
 TODO.
 
#define NANO_XRCE_ClientRequestsStorage_initialize(s_, client_reqs_, client_reqs_max_)
 TODO.
 
#define NANO_XRCE_CLIENTREQUESTSSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_CLIENTREQUESTTOKEN_INITIALIZER
 TODO.
 
#define NANO_XRCE_ClientStorage_initialize(s_, reqs_, session_)
 TODO.
 
#define NANO_XRCE_CLIENTSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_CREATEARGS_INITIALIZER
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZE(s_)
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTREQUESTSSTORAGE_TYPE_MEMBERS(max_requests_)
 TODO.
 
#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_)
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_DEFINE_TYPES_W_SESSION(base_type_name_, max_requests_, session_storage_)
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE(s_)
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE_W_SESSION(s_, session_init_)
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER_W_SESSION(session_initializer_)
 TODO.
 
#define NANO_XRCE_CUSTOMCLIENTSTORAGE_TYPE_MEMBERS(base_type_name_, session_storage_)
 TODO.
 
#define NANO_XRCE_DefaultClientStorage_initialize(s_)   NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZE(s_)
 TODO.
 
#define NANO_XRCE_DEFAULTCLIENTSTORAGE_INITIALIZER   NANO_XRCE_CUSTOMCLIENTSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_DefaultSimpleClientStorage_initialize(s_)   NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZE(s_)
 TODO.
 
#define NANO_XRCE_DEFAULTSIMPLECLIENTSTORAGE_INITIALIZER   NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_READARGS_INITIALIZER
 TODO.
 
#define NANO_XRCE_REQUESTARGS_INITIALIZER
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_CONFIRM   (0x01 << 3)
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_CREATE_REPLACE   (0x01 << 2)
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_CREATE_REUSE   (0x01 << 1)
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_CUSTOM_ENDIANNESS   (0x01 << 9)
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_DEFAULT   0
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_LITTLE_ENDIAN   (0x01 << 0)
 TODO.
 
#define NANO_XRCE_REQUESTFLAGS_SYNC   (0x01 << 4)
 TODO.
 
#define NANO_XRCE_SIMPLECLIENTSTORAGE_DEFINE_TYPES(base_type_name_, max_requests_, max_messages_, max_streams_be_, max_streams_rel_)
 TODO.
 
#define NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZE(s_)
 TODO.
 
#define NANO_XRCE_SIMPLECLIENTSTORAGE_INITIALIZER
 TODO.
 
#define NANO_XRCE_SIMPLECLIENTSTORAGE_TYPE_MEMBERS(base_type_name_)
 TODO.
 
#define NANO_XRCE_WRITEARGS_INITIALIZER
 TODO.
 

Typedefs

typedef struct NANO_XRCE_ClientI NANO_XRCE_Client
 An object used to establish a session on a remote XRCE Agent and access its services. More...
 
typedef 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. More...
 
typedef 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. More...
 
typedef void(* NANO_XRCE_ClientListener_OnInfoFn) (NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_ObjectInfo *const info)
 TODO. More...
 
typedef 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. More...
 
typedef void(* NANO_XRCE_ClientListener_OnWriteComplete) (NANO_XRCE_ClientListener *const self, NANO_XRCE_Client *const client, const NANO_XRCE_ClientRequest *const write_req)
 TODO. More...
 
typedef NANO_u16 NANO_XRCE_RequestFlags
 TODO.
 

Functions

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. More...
 
NANO_RetCode NANO_XRCE_Client_announce (NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token, const NANO_XRCE_RequestArgs *const args)
 TODO. More...
 
NANO_RetCode NANO_XRCE_Client_connect (NANO_XRCE_Client *const self, const NANO_Timeout timeout_ms)
 TODO. More...
 
NANO_bool NANO_XRCE_Client_connected (const NANO_XRCE_Client *const self)
 TODO. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
NANO_bool NANO_XRCE_Client_discovering (const NANO_XRCE_Client *const self)
 TODO. More...
 
void NANO_XRCE_Client_dismiss_request (NANO_XRCE_Client *const self, NANO_XRCE_ClientRequestToken *const request_token)
 TODO. More...
 
void NANO_XRCE_Client_drop_requests (NANO_XRCE_Client *const self)
 TODO. More...
 
NANO_RetCode NANO_XRCE_Client_enable_stream (NANO_XRCE_Client *const self, const NANO_XRCE_StreamId stream_id, NANO_XRCE_ClientStorage *const storage)
 TODO. More...
 
void NANO_XRCE_Client_finalize (NANO_XRCE_Client *const self)
 TODO. More...
 
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. More...
 
NANO_RetCode NANO_XRCE_Client_initialize (NANO_XRCE_Client *const self, const NANO_XRCE_ClientProperties *const properties)
 TODO. More...
 
void NANO_XRCE_Client_liveliness_assertion_period (NANO_XRCE_Client *const self, const NANO_u64 period)
 TODO. More...
 
void NANO_XRCE_Client_mark_connected (NANO_XRCE_Client *const self)
 TODO. More...
 
void NANO_XRCE_Client_mark_disconnected (NANO_XRCE_Client *const self)
 TODO. More...
 
void NANO_XRCE_Client_on_data (NANO_XRCE_Client *const self, NANO_XRCE_ClientListener_OnDataFn on_data, void *const listener_ctx)
 TODO. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
NANO_RetCode NANO_XRCE_Client_release_message_buffer (NANO_XRCE_Client *const self, const NANO_XRCE_StreamId stream_id, NANO_MessageBuffer *const mbuf)
 TODO. More...
 
NANO_RetCode NANO_XRCE_Client_run_session (NANO_XRCE_Client *const self, const NANO_usize max_messages, const NANO_Timeout timeout_ms)
 TODO. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Detailed Description

nano-client API.

This header file should be included to access the services provided by the nano-client library.