File astutedds.h

FileList > astutedds > c > astutedds.h

Go to the source code of this file

  • #include <stddef.h>
  • #include <stdint.h>

Classes

Type Name
struct AstuteDDS_DataReaderListener
struct AstuteDDS_DataReaderQos
struct AstuteDDS_DataWriterListener
struct AstuteDDS_DataWriterQos
struct AstuteDDS_EndpointInfo
struct AstuteDDS_Gid
struct AstuteDDS_LivelinessChangedStatus
struct AstuteDDS_LivelinessLostStatus
struct AstuteDDS_OfferedDeadlineMissedStatus
struct AstuteDDS_OfferedIncompatibleQosStatus
struct AstuteDDS_PublicationMatchedStatus
struct AstuteDDS_RequestedDeadlineMissedStatus
struct AstuteDDS_RequestedIncompatibleQosStatus
struct AstuteDDS_RequesterQos
struct AstuteDDS_Sample
struct AstuteDDS_SampleLostStatus
struct AstuteDDS_SubscriptionMatchedStatus

Public Types

Type Name
typedef void(* AstuteDDS_DataAvailableCallback
typedef struct AstuteDDS_DataReader_s * AstuteDDS_DataReader
typedef struct AstuteDDS_DataWriter_s * AstuteDDS_DataWriter
enum AstuteDDS_Durability
typedef void(* AstuteDDS_EndpointCallback
enum AstuteDDS_HistoryKind
typedef void(* AstuteDDS_LivelinessChangedCallback
enum AstuteDDS_LivelinessKind
typedef void(* AstuteDDS_LivelinessLostCallback
typedef void(* AstuteDDS_OfferedDeadlineMissedCallback
typedef void(* AstuteDDS_OfferedIncompatibleQosCallback
typedef struct AstuteDDS_Participant_s * AstuteDDS_Participant
typedef void(* AstuteDDS_PublicationMatchedCallback
typedef struct AstuteDDS_Publisher_s * AstuteDDS_Publisher
enum AstuteDDS_Reliability
typedef struct AstuteDDS_Replier_s * AstuteDDS_Replier
typedef AstuteDDS_RequesterQos AstuteDDS_ReplierQos
typedef void(* AstuteDDS_RequestedDeadlineMissedCallback
typedef void(* AstuteDDS_RequestedIncompatibleQosCallback
typedef struct AstuteDDS_Requester_s * AstuteDDS_Requester
enum AstuteDDS_ReturnCode
typedef void(* AstuteDDS_SampleLostCallback
typedef struct AstuteDDS_Subscriber_s * AstuteDDS_Subscriber
typedef void(* AstuteDDS_SubscriptionMatchedCallback
typedef struct AstuteDDS_Topic_s * AstuteDDS_Topic
typedef void(* AstuteDDS_TopicCallback

Public Functions

Type Name
AstuteDDS_DataReader astutedds_create_datareader (AstuteDDS_Subscriber sub, AstuteDDS_Topic topic, const AstuteDDS_DataReaderQos * qos)
AstuteDDS_DataWriter astutedds_create_datawriter (AstuteDDS_Publisher pub, AstuteDDS_Topic topic, const AstuteDDS_DataWriterQos * qos)
AstuteDDS_Participant astutedds_create_participant (uint32_t domain_id)
AstuteDDS_Publisher astutedds_create_publisher (AstuteDDS_Participant p)
AstuteDDS_Replier astutedds_create_replier (AstuteDDS_Participant participant, const char * service_name, const char * request_type_name, const char * reply_type_name, const AstuteDDS_ReplierQos * qos)
AstuteDDS_Requester astutedds_create_requester (AstuteDDS_Participant participant, const char * service_name, const char * request_type_name, const char * reply_type_name, const AstuteDDS_RequesterQos * qos)
AstuteDDS_Subscriber astutedds_create_subscriber (AstuteDDS_Participant p)
AstuteDDS_Topic astutedds_create_topic (AstuteDDS_Participant p, const char * topic_name, const char * type_name)
AstuteDDS_ReturnCode astutedds_datareader_drain_read_fd (int fd)
AstuteDDS_ReturnCode astutedds_datareader_get_gid (AstuteDDS_DataReader r, AstuteDDS_Gid * out)
AstuteDDS_ReturnCode astutedds_datareader_get_liveliness_changed_status (AstuteDDS_DataReader r, AstuteDDS_LivelinessChangedStatus * out)
AstuteDDS_ReturnCode astutedds_datareader_get_qos (AstuteDDS_DataReader r, AstuteDDS_DataReaderQos * out)
int astutedds_datareader_get_read_fd (AstuteDDS_DataReader r)
AstuteDDS_ReturnCode astutedds_datareader_get_requested_deadline_missed_status (AstuteDDS_DataReader r, AstuteDDS_RequestedDeadlineMissedStatus * out)
AstuteDDS_ReturnCode astutedds_datareader_get_requested_incompatible_qos_status (AstuteDDS_DataReader r, AstuteDDS_RequestedIncompatibleQosStatus * out)
AstuteDDS_ReturnCode astutedds_datareader_get_sample_lost_status (AstuteDDS_DataReader r, AstuteDDS_SampleLostStatus * out)
AstuteDDS_ReturnCode astutedds_datareader_get_subscription_matched_status (AstuteDDS_DataReader r, AstuteDDS_SubscriptionMatchedStatus * out)
AstuteDDS_ReturnCode astutedds_datareader_set_listener (AstuteDDS_DataReader r, const AstuteDDS_DataReaderListener * listener)
AstuteDDS_ReturnCode astutedds_datawriter_assert_liveliness (AstuteDDS_DataWriter w)
AstuteDDS_ReturnCode astutedds_datawriter_get_gid (AstuteDDS_DataWriter w, AstuteDDS_Gid * out)
AstuteDDS_ReturnCode astutedds_datawriter_get_liveliness_lost_status (AstuteDDS_DataWriter w, AstuteDDS_LivelinessLostStatus * out)
AstuteDDS_ReturnCode astutedds_datawriter_get_offered_deadline_missed_status (AstuteDDS_DataWriter w, AstuteDDS_OfferedDeadlineMissedStatus * out)
AstuteDDS_ReturnCode astutedds_datawriter_get_offered_incompatible_qos_status (AstuteDDS_DataWriter w, AstuteDDS_OfferedIncompatibleQosStatus * out)
AstuteDDS_ReturnCode astutedds_datawriter_get_publication_matched_status (AstuteDDS_DataWriter w, AstuteDDS_PublicationMatchedStatus * out)
AstuteDDS_ReturnCode astutedds_datawriter_get_qos (AstuteDDS_DataWriter w, AstuteDDS_DataWriterQos * out)
AstuteDDS_ReturnCode astutedds_datawriter_set_listener (AstuteDDS_DataWriter w, const AstuteDDS_DataWriterListener * listener)
void astutedds_delete_datareader (AstuteDDS_Subscriber sub, AstuteDDS_DataReader r)
void astutedds_delete_datawriter (AstuteDDS_Publisher pub, AstuteDDS_DataWriter w)
void astutedds_delete_participant (AstuteDDS_Participant p)
void astutedds_delete_publisher (AstuteDDS_Participant p, AstuteDDS_Publisher pub)
void astutedds_delete_replier (AstuteDDS_Participant participant, AstuteDDS_Replier replier)
void astutedds_delete_requester (AstuteDDS_Participant participant, AstuteDDS_Requester requester)
void astutedds_delete_subscriber (AstuteDDS_Participant p, AstuteDDS_Subscriber sub)
void astutedds_delete_topic (AstuteDDS_Participant p, AstuteDDS_Topic t)
void astutedds_enumerate_publications (AstuteDDS_Participant p, AstuteDDS_EndpointCallback callback, void * user_data)
void astutedds_enumerate_subscriptions (AstuteDDS_Participant p, AstuteDDS_EndpointCallback callback, void * user_data)
void astutedds_get_topic_names_and_types (AstuteDDS_Participant p, AstuteDDS_TopicCallback callback, void * user_data)
AstuteDDS_ReturnCode astutedds_participant_get_gid (AstuteDDS_Participant p, AstuteDDS_Gid * out)
AstuteDDS_ReturnCode astutedds_participant_set_user_data (AstuteDDS_Participant p, const uint8_t * data, size_t length)
AstuteDDS_DataWriter astutedds_replier_get_reply_writer (AstuteDDS_Replier replier)
AstuteDDS_DataReader astutedds_replier_get_request_reader (AstuteDDS_Replier replier)
AstuteDDS_ReturnCode astutedds_replier_send_reply (AstuteDDS_Replier replier, const uint8_t * client_gid, int64_t sequence_number, const uint8_t * payload, size_t payload_length)
AstuteDDS_ReturnCode astutedds_replier_take_request (AstuteDDS_Replier replier, const uint8_t ** out_payload, size_t * out_payload_length, uint8_t * out_client_gid, int64_t * out_sequence_number)
AstuteDDS_ReturnCode astutedds_requester_get_gid (AstuteDDS_Requester requester, uint8_t * out_gid)
AstuteDDS_DataReader astutedds_requester_get_reply_reader (AstuteDDS_Requester requester)
AstuteDDS_DataWriter astutedds_requester_get_request_writer (AstuteDDS_Requester requester)
AstuteDDS_ReturnCode astutedds_requester_send_request (AstuteDDS_Requester requester, const uint8_t * payload, size_t payload_length, int64_t * out_sequence_number)
AstuteDDS_ReturnCode astutedds_requester_take_reply (AstuteDDS_Requester requester, const uint8_t ** out_payload, size_t * out_payload_length, int64_t * out_sequence_number)
AstuteDDS_ReturnCode astutedds_take_next (AstuteDDS_DataReader r, AstuteDDS_Sample * out)
const char * astutedds_topic_name (AstuteDDS_Topic t)
const char * astutedds_topic_type_name (AstuteDDS_Topic t)
size_t astutedds_unread_count (AstuteDDS_DataReader r)
AstuteDDS_ReturnCode astutedds_write (AstuteDDS_DataWriter w, const uint8_t * data, size_t len)

Public Static Functions

Type Name
AstuteDDS_DataReaderQos astutedds_default_datareader_qos (void)
AstuteDDS_DataWriterQos astutedds_default_datawriter_qos (void)
AstuteDDS_ReplierQos astutedds_default_replier_qos (void)
AstuteDDS_RequesterQos astutedds_default_requester_qos (void)

Macros

Type Name
define ASTUTEDDS_DURATION_INFINITE (INT64\_C(0x7fffffffffffffff))

Public Types Documentation

typedef AstuteDDS_DataAvailableCallback

typedef void(* AstuteDDS_DataAvailableCallback) (void *user_data, AstuteDDS_DataReader reader);

typedef AstuteDDS_DataReader

typedef struct AstuteDDS_DataReader_s* AstuteDDS_DataReader;

typedef AstuteDDS_DataWriter

typedef struct AstuteDDS_DataWriter_s* AstuteDDS_DataWriter;

enum AstuteDDS_Durability

enum AstuteDDS_Durability {
    ASTUTEDDS_VOLATILE = 0,
    ASTUTEDDS_TRANSIENT_LOCAL = 1
};

typedef AstuteDDS_EndpointCallback

typedef void(* AstuteDDS_EndpointCallback) (void *user_data, const AstuteDDS_EndpointInfo *info);

Callback invoked once per discovered remote endpoint.


enum AstuteDDS_HistoryKind

enum AstuteDDS_HistoryKind {
    ASTUTEDDS_KEEP_LAST = 0,
    ASTUTEDDS_KEEP_ALL = 1
};

typedef AstuteDDS_LivelinessChangedCallback

typedef void(* AstuteDDS_LivelinessChangedCallback) (void *user_data, AstuteDDS_DataReader reader, const AstuteDDS_LivelinessChangedStatus *status);

§1.1b-B — LIVELINESS_CHANGED_STATUS (DDS §2.2.4.1.4). Fired on the reader side when the alive/not-alive count of matched remote writers changes.


enum AstuteDDS_LivelinessKind

enum AstuteDDS_LivelinessKind {
    ASTUTEDDS_AUTOMATIC_LIVELINESS = 0,
    ASTUTEDDS_MANUAL_BY_PARTICIPANT_LIVELINESS = 1,
    ASTUTEDDS_MANUAL_BY_TOPIC_LIVELINESS = 2
};

LIVELINESS QoS kind (DDS §2.2.3.10).


typedef AstuteDDS_LivelinessLostCallback

typedef void(* AstuteDDS_LivelinessLostCallback) (void *user_data, AstuteDDS_DataWriter writer, const AstuteDDS_LivelinessLostStatus *status);

§1.1b-B — LIVELINESS_LOST_STATUS (DDS §2.2.4.1.3). Fired on the writer side when a local writer's lease elapses without an assertion.


typedef AstuteDDS_OfferedDeadlineMissedCallback

typedef void(* AstuteDDS_OfferedDeadlineMissedCallback) (void *user_data, AstuteDDS_DataWriter writer, const AstuteDDS_OfferedDeadlineMissedStatus *status);

§1.1b-B — OFFERED_DEADLINE_MISSED_STATUS (DDS §2.2.4.1.5). Fired on the writer side when a write() is not observed within the configured DEADLINE period.


typedef AstuteDDS_OfferedIncompatibleQosCallback

typedef void(* AstuteDDS_OfferedIncompatibleQosCallback) (void *user_data, AstuteDDS_DataWriter writer, const AstuteDDS_OfferedIncompatibleQosStatus *status);

typedef AstuteDDS_Participant

typedef struct AstuteDDS_Participant_s* AstuteDDS_Participant;

typedef AstuteDDS_PublicationMatchedCallback

typedef void(* AstuteDDS_PublicationMatchedCallback) (void *user_data, AstuteDDS_DataWriter writer, const AstuteDDS_PublicationMatchedStatus *status);

typedef AstuteDDS_Publisher

typedef struct AstuteDDS_Publisher_s* AstuteDDS_Publisher;

enum AstuteDDS_Reliability

enum AstuteDDS_Reliability {
    ASTUTEDDS_BEST_EFFORT = 0,
    ASTUTEDDS_RELIABLE = 1
};

typedef AstuteDDS_Replier

typedef struct AstuteDDS_Replier_s* AstuteDDS_Replier;

typedef AstuteDDS_ReplierQos

typedef AstuteDDS_RequesterQos AstuteDDS_ReplierQos;

typedef AstuteDDS_RequestedDeadlineMissedCallback

typedef void(* AstuteDDS_RequestedDeadlineMissedCallback) (void *user_data, AstuteDDS_DataReader reader, const AstuteDDS_RequestedDeadlineMissedStatus *status);

§1.1b-B — REQUESTED_DEADLINE_MISSED_STATUS (DDS §2.2.4.1.5). Fired on the reader side when a sample from a matched writer is not observed within the configured DEADLINE period.


typedef AstuteDDS_RequestedIncompatibleQosCallback

typedef void(* AstuteDDS_RequestedIncompatibleQosCallback) (void *user_data, AstuteDDS_DataReader reader, const AstuteDDS_RequestedIncompatibleQosStatus *status);

typedef AstuteDDS_Requester

typedef struct AstuteDDS_Requester_s* AstuteDDS_Requester;

enum AstuteDDS_ReturnCode

enum AstuteDDS_ReturnCode {
    ASTUTEDDS_OK = 0,
    ASTUTEDDS_ERROR = 1,
    ASTUTEDDS_UNSUPPORTED = 2,
    ASTUTEDDS_BAD_PARAM = 3,
    ASTUTEDDS_PRECONDITION = 4,
    ASTUTEDDS_OUT_OF_RESOURCES = 5,
    ASTUTEDDS_NOT_ENABLED = 6,
    ASTUTEDDS_TIMEOUT = 10,
    ASTUTEDDS_NO_DATA = 11
};

typedef AstuteDDS_SampleLostCallback

typedef void(* AstuteDDS_SampleLostCallback) (void *user_data, AstuteDDS_DataReader reader, const AstuteDDS_SampleLostStatus *status);

§1.1b-B — SAMPLE_LOST_STATUS (DDS §2.2.4.1.7). Fired on the reader side when samples are dropped by the reader cache (KEEP_LAST overflow) or announced permanently unavailable via RTPS GAP.


typedef AstuteDDS_Subscriber

typedef struct AstuteDDS_Subscriber_s* AstuteDDS_Subscriber;

typedef AstuteDDS_SubscriptionMatchedCallback

typedef void(* AstuteDDS_SubscriptionMatchedCallback) (void *user_data, AstuteDDS_DataReader reader, const AstuteDDS_SubscriptionMatchedStatus *status);

typedef AstuteDDS_Topic

typedef struct AstuteDDS_Topic_s* AstuteDDS_Topic;

typedef AstuteDDS_TopicCallback

typedef void(* AstuteDDS_TopicCallback) (void *user_data, const char *topic_name, const char *type_name);

Callback invoked once per discovered {topic_name, type_name} pair. Called synchronously inside astutedds_get_topic_names_and_types().


Public Functions Documentation

function astutedds_create_datareader

AstuteDDS_DataReader astutedds_create_datareader (
    AstuteDDS_Subscriber sub,
    AstuteDDS_Topic topic,
    const AstuteDDS_DataReaderQos * qos
) 

NULL → default QoS


function astutedds_create_datawriter

AstuteDDS_DataWriter astutedds_create_datawriter (
    AstuteDDS_Publisher pub,
    AstuteDDS_Topic topic,
    const AstuteDDS_DataWriterQos * qos
) 

NULL → default QoS


function astutedds_create_participant

AstuteDDS_Participant astutedds_create_participant (
    uint32_t domain_id
) 

Create and enable a DomainParticipant.

Returns:

Handle, or NULL on failure.


function astutedds_create_publisher

AstuteDDS_Publisher astutedds_create_publisher (
    AstuteDDS_Participant p
) 

function astutedds_create_replier

AstuteDDS_Replier astutedds_create_replier (
    AstuteDDS_Participant participant,
    const char * service_name,
    const char * request_type_name,
    const char * reply_type_name,
    const AstuteDDS_ReplierQos * qos
) 

Create a Replier on the given service.


function astutedds_create_requester

AstuteDDS_Requester astutedds_create_requester (
    AstuteDDS_Participant participant,
    const char * service_name,
    const char * request_type_name,
    const char * reply_type_name,
    const AstuteDDS_RequesterQos * qos
) 

Create a Requester on the given service. The two DDS topics rq/<service_name>Request and rr/<service_name>Reply are created (or reused) automatically.

Returns:

Handle, or NULL on failure.


function astutedds_create_subscriber

AstuteDDS_Subscriber astutedds_create_subscriber (
    AstuteDDS_Participant p
) 

function astutedds_create_topic

AstuteDDS_Topic astutedds_create_topic (
    AstuteDDS_Participant p,
    const char * topic_name,
    const char * type_name
) 

function astutedds_datareader_drain_read_fd

AstuteDDS_ReturnCode astutedds_datareader_drain_read_fd (
    int fd
) 

Drain all pending arrival credits from the fd returned by astutedds_datareader_get_read_fd(). Non-blocking; safe to call from any thread. Intended as a level-triggered helper for callers that treat the eventfd as "data pending" rather than "one sample pending".

Returns:

ASTUTEDDS_OK, or ASTUTEDDS_BAD_PARAM for an invalid fd.


function astutedds_datareader_get_gid

AstuteDDS_ReturnCode astutedds_datareader_get_gid (
    AstuteDDS_DataReader r,
    AstuteDDS_Gid * out
) 

function astutedds_datareader_get_liveliness_changed_status

AstuteDDS_ReturnCode astutedds_datareader_get_liveliness_changed_status (
    AstuteDDS_DataReader r,
    AstuteDDS_LivelinessChangedStatus * out
) 

§1.1b-B — Read and drain a DataReader's liveliness-changed status (DDS §2.2.4.1.4). Snapshot returned reflects the participant's view of matched remote-writer liveliness at the time of the call.


function astutedds_datareader_get_qos

AstuteDDS_ReturnCode astutedds_datareader_get_qos (
    AstuteDDS_DataReader r,
    AstuteDDS_DataReaderQos * out
) 

function astutedds_datareader_get_read_fd

int astutedds_datareader_get_read_fd (
    AstuteDDS_DataReader r
) 

function astutedds_datareader_get_requested_deadline_missed_status

AstuteDDS_ReturnCode astutedds_datareader_get_requested_deadline_missed_status (
    AstuteDDS_DataReader r,
    AstuteDDS_RequestedDeadlineMissedStatus * out
) 

§1.1b-B — DEADLINE QoS. Read and drain the reader-side requested-deadline-missed status (DDS §2.2.4.1.5).


function astutedds_datareader_get_requested_incompatible_qos_status

AstuteDDS_ReturnCode astutedds_datareader_get_requested_incompatible_qos_status (
    AstuteDDS_DataReader r,
    AstuteDDS_RequestedIncompatibleQosStatus * out
) 

Read and drain a DataReader's requested-incompatible-qos status.


function astutedds_datareader_get_sample_lost_status

AstuteDDS_ReturnCode astutedds_datareader_get_sample_lost_status (
    AstuteDDS_DataReader r,
    AstuteDDS_SampleLostStatus * out
) 

§1.1b-B — SAMPLE_LOST_STATUS (DDS §2.2.4.1.7). Bumped by the reader cache when a KEEP_LAST slot overflows and a sample is silently discarded. total_count_change resets on read.


function astutedds_datareader_get_subscription_matched_status

AstuteDDS_ReturnCode astutedds_datareader_get_subscription_matched_status (
    AstuteDDS_DataReader r,
    AstuteDDS_SubscriptionMatchedStatus * out
) 

Read and drain a DataReader's subscription-matched status.


function astutedds_datareader_set_listener

AstuteDDS_ReturnCode astutedds_datareader_set_listener (
    AstuteDDS_DataReader r,
    const AstuteDDS_DataReaderListener * listener
) 

function astutedds_datawriter_assert_liveliness

AstuteDDS_ReturnCode astutedds_datawriter_assert_liveliness (
    AstuteDDS_DataWriter w
) 

§1.1b-B — Manually assert liveliness for MANUAL_BY_TOPIC / MANUAL_BY_PARTICIPANT DataWriters (DDS §2.2.3.10). Returns ASTUTEDDS_OK if the assertion was routed to the LivelinessManager, ASTUTEDDS_BAD_PARAM for a null handle.


function astutedds_datawriter_get_gid

AstuteDDS_ReturnCode astutedds_datawriter_get_gid (
    AstuteDDS_DataWriter w,
    AstuteDDS_Gid * out
) 

function astutedds_datawriter_get_liveliness_lost_status

AstuteDDS_ReturnCode astutedds_datawriter_get_liveliness_lost_status (
    AstuteDDS_DataWriter w,
    AstuteDDS_LivelinessLostStatus * out
) 

§1.1b-B — LIVELINESS QoS. Read and drain the writer-side liveliness-lost status (DDS §2.2.4.1.3). total_count_change resets to zero on this call.


function astutedds_datawriter_get_offered_deadline_missed_status

AstuteDDS_ReturnCode astutedds_datawriter_get_offered_deadline_missed_status (
    AstuteDDS_DataWriter w,
    AstuteDDS_OfferedDeadlineMissedStatus * out
) 

§1.1b-B — DEADLINE QoS. Read and drain the writer-side offered-deadline-missed status (DDS §2.2.4.1.5).


function astutedds_datawriter_get_offered_incompatible_qos_status

AstuteDDS_ReturnCode astutedds_datawriter_get_offered_incompatible_qos_status (
    AstuteDDS_DataWriter w,
    AstuteDDS_OfferedIncompatibleQosStatus * out
) 

Read and drain a DataWriter's offered-incompatible-qos status.


function astutedds_datawriter_get_publication_matched_status

AstuteDDS_ReturnCode astutedds_datawriter_get_publication_matched_status (
    AstuteDDS_DataWriter w,
    AstuteDDS_PublicationMatchedStatus * out
) 

Read and drain a DataWriter's publication-matched status. Per DDS §2.2.4.1, the *_change fields are reset to zero after this call, so subsequent reads only report deltas since the previous read.


function astutedds_datawriter_get_qos

AstuteDDS_ReturnCode astutedds_datawriter_get_qos (
    AstuteDDS_DataWriter w,
    AstuteDDS_DataWriterQos * out
) 

Read back the currently effective QoS on a DataWriter. Populates the same struct that was used at create time.


function astutedds_datawriter_set_listener

AstuteDDS_ReturnCode astutedds_datawriter_set_listener (
    AstuteDDS_DataWriter w,
    const AstuteDDS_DataWriterListener * listener
) 

function astutedds_delete_datareader

void astutedds_delete_datareader (
    AstuteDDS_Subscriber sub,
    AstuteDDS_DataReader r
) 

function astutedds_delete_datawriter

void astutedds_delete_datawriter (
    AstuteDDS_Publisher pub,
    AstuteDDS_DataWriter w
) 

function astutedds_delete_participant

void astutedds_delete_participant (
    AstuteDDS_Participant p
) 

Stop and destroy a DomainParticipant. All child entities must have been deleted first.


function astutedds_delete_publisher

void astutedds_delete_publisher (
    AstuteDDS_Participant p,
    AstuteDDS_Publisher pub
) 

function astutedds_delete_replier

void astutedds_delete_replier (
    AstuteDDS_Participant participant,
    AstuteDDS_Replier replier
) 

Destroy a Replier.


function astutedds_delete_requester

void astutedds_delete_requester (
    AstuteDDS_Participant participant,
    AstuteDDS_Requester requester
) 

Destroy a Requester.


function astutedds_delete_subscriber

void astutedds_delete_subscriber (
    AstuteDDS_Participant p,
    AstuteDDS_Subscriber sub
) 

function astutedds_delete_topic

void astutedds_delete_topic (
    AstuteDDS_Participant p,
    AstuteDDS_Topic t
) 

function astutedds_enumerate_publications

void astutedds_enumerate_publications (
    AstuteDDS_Participant p,
    AstuteDDS_EndpointCallback callback,
    void * user_data
) 

Enumerate all currently discovered remote DataWriters. One callback per endpoint; participants that own multiple writers produce one callback each.


function astutedds_enumerate_subscriptions

void astutedds_enumerate_subscriptions (
    AstuteDDS_Participant p,
    AstuteDDS_EndpointCallback callback,
    void * user_data
) 

Enumerate all currently discovered remote DataReaders.


function astutedds_get_topic_names_and_types

void astutedds_get_topic_names_and_types (
    AstuteDDS_Participant p,
    AstuteDDS_TopicCallback callback,
    void * user_data
) 

Enumerate all topics currently known to the participant (local + discovered remote). For each unique topic_name the callback is invoked exactly once.

Parameters:

  • p The DomainParticipant to query.
  • callback Called for each topic.
  • user_data Passed through to every callback invocation.

function astutedds_participant_get_gid

AstuteDDS_ReturnCode astutedds_participant_get_gid (
    AstuteDDS_Participant p,
    AstuteDDS_Gid * out
) 

Fetch the 12-byte participant GUID prefix (zero-padded to 16 bytes: entity ID slot left as 0x00000000 for a participant handle).

Returns:

ASTUTEDDS_OK on success; ASTUTEDDS_BAD_PARAM on NULL args.


function astutedds_participant_set_user_data

AstuteDDS_ReturnCode astutedds_participant_set_user_data (
    AstuteDDS_Participant p,
    const uint8_t * data,
    size_t length
) 

Set the participant USER_DATA blob (DomainParticipantQos::user_data.value). Must be called before any entities are created so the value is announced in the first outbound SPDP. Copies the buffer; caller may free after return.

ROS 2 RMW uses this to advertise node name/namespace.

Returns:

ASTUTEDDS_OK, ASTUTEDDS_BAD_PARAM, ASTUTEDDS_PRECONDITION (already announced).


function astutedds_replier_get_reply_writer

AstuteDDS_DataWriter astutedds_replier_get_reply_writer (
    AstuteDDS_Replier replier
) 

Underlying reply DataWriter handle.


function astutedds_replier_get_request_reader

AstuteDDS_DataReader astutedds_replier_get_request_reader (
    AstuteDDS_Replier replier
) 

Underlying request DataReader handle.


function astutedds_replier_send_reply

AstuteDDS_ReturnCode astutedds_replier_send_reply (
    AstuteDDS_Replier replier,
    const uint8_t * client_gid,
    int64_t sequence_number,
    const uint8_t * payload,
    size_t payload_length
) 

Send a reply. The caller must supply the client_gid + sequence_number previously obtained from astutedds_replier_take_request so the reply reaches the correct Requester.


function astutedds_replier_take_request

AstuteDDS_ReturnCode astutedds_replier_take_request (
    AstuteDDS_Replier replier,
    const uint8_t ** out_payload,
    size_t * out_payload_length,
    uint8_t * out_client_gid,
    int64_t * out_sequence_number
) 

Take the next request. On success, out_payload/out_payload_length point into a buffer owned by the Replier and valid until the next call to astutedds_replier_take_request; out_client_gid is a 16-byte copy of the calling Requester's GID; out_sequence_number is the request's sequence. All three of the caller-supplied gid/seq output pointers are required (non-NULL) when this call succeeds.

Parameters:

  • out_client_gid destination buffer, must be at least 16 bytes.

function astutedds_requester_get_gid

AstuteDDS_ReturnCode astutedds_requester_get_gid (
    AstuteDDS_Requester requester,
    uint8_t * out_gid
) 

Copy this Requester's 16-byte GID into out_gid.

Parameters:

  • out_gid destination buffer, must be at least 16 bytes.

function astutedds_requester_get_reply_reader

AstuteDDS_DataReader astutedds_requester_get_reply_reader (
    AstuteDDS_Requester requester
) 

Underlying reply DataReader handle — useful for attaching a listener.


function astutedds_requester_get_request_writer

AstuteDDS_DataWriter astutedds_requester_get_request_writer (
    AstuteDDS_Requester requester
) 

Underlying request DataWriter handle.


function astutedds_requester_send_request

AstuteDDS_ReturnCode astutedds_requester_send_request (
    AstuteDDS_Requester requester,
    const uint8_t * payload,
    size_t payload_length,
    int64_t * out_sequence_number
) 

Send a request. The 24-byte correlation header (GID + auto-incrementing sequence number) is prepended internally; payload contains only the user bytes.

Parameters:

  • out_sequence_number Optional; when non-NULL receives the sequence number assigned to this request.

Returns:

ASTUTEDDS_OK on success.


function astutedds_requester_take_reply

AstuteDDS_ReturnCode astutedds_requester_take_reply (
    AstuteDDS_Requester requester,
    const uint8_t ** out_payload,
    size_t * out_payload_length,
    int64_t * out_sequence_number
) 

Take the next reply addressed to this Requester (matches by GID). The returned pointer is owned by the Requester and remains valid until the next call to astutedds_requester_take_reply on the same handle. Returns ASTUTEDDS_NO_DATA when no matching reply is queued.


function astutedds_take_next

AstuteDDS_ReturnCode astutedds_take_next (
    AstuteDDS_DataReader r,
    AstuteDDS_Sample * out
) 

Take the next available sample (removes it from the reader cache).

On ASTUTEDDS_OK the sample fields are populated and the internal buffer is valid until the next call to astutedds_take_next() on the same reader. Copy *data before calling again.

Returns:

ASTUTEDDS_OK | ASTUTEDDS_NO_DATA | ASTUTEDDS_ERROR


function astutedds_topic_name

const char * astutedds_topic_name (
    AstuteDDS_Topic t
) 

function astutedds_topic_type_name

const char * astutedds_topic_type_name (
    AstuteDDS_Topic t
) 

function astutedds_unread_count

size_t astutedds_unread_count (
    AstuteDDS_DataReader r
) 

Return the number of unread samples in the reader cache.


function astutedds_write

AstuteDDS_ReturnCode astutedds_write (
    AstuteDDS_DataWriter w,
    const uint8_t * data,
    size_t len
) 

Write a serialised sample.

Parameters:

  • data CDR-encoded payload bytes.
  • len Byte length of data.

Public Static Functions Documentation

function astutedds_default_datareader_qos

static inline AstuteDDS_DataReaderQos astutedds_default_datareader_qos (
    void
) 

function astutedds_default_datawriter_qos

static inline AstuteDDS_DataWriterQos astutedds_default_datawriter_qos (
    void
) 

function astutedds_default_replier_qos

static inline AstuteDDS_ReplierQos astutedds_default_replier_qos (
    void
) 

function astutedds_default_requester_qos

static inline AstuteDDS_RequesterQos astutedds_default_requester_qos (
    void
) 

Macro Definition Documentation

define ASTUTEDDS_DURATION_INFINITE

#define ASTUTEDDS_DURATION_INFINITE `(INT64_C(0x7fffffffffffffff))`

Sentinel Duration_t value meaning "infinite" for the *_duration_ns / *_period_ns fields on the QoS structs. Any negative value is treated the same way.



The documentation for this class was generated from the following file include/astutedds/c/astutedds.h