Enable "missing prototypes" warning for gcc, clang
Missing prototypes for exported functions cause a really huge issue on Windows. Enabling the "missing prototypes" warning makes it much easier to catch this problem. Naturally, any warnings caused by this have been fixed. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
a4d8aba4f9
commit
32b683bf37
26 changed files with 92 additions and 304 deletions
|
@ -87,12 +87,12 @@ endif()
|
||||||
# Set reasonably strict warning options for clang, gcc, msvc
|
# Set reasonably strict warning options for clang, gcc, msvc
|
||||||
# Enable coloured ouput if Ninja is used for building
|
# Enable coloured ouput if Ninja is used for building
|
||||||
if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang")
|
if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang")
|
||||||
add_definitions(-Wall -Wextra -Wconversion -Wunused)
|
add_definitions(-Wall -Wextra -Wconversion -Wunused -Wmissing-prototypes)
|
||||||
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||||
add_definitions(-Xclang -fcolor-diagnostics)
|
add_definitions(-Xclang -fcolor-diagnostics)
|
||||||
endif()
|
endif()
|
||||||
elseif(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
elseif(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||||
add_definitions(-Wall -Wextra -Wconversion)
|
add_definitions(-Wall -Wextra -Wconversion -Wmissing-prototypes)
|
||||||
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||||
add_definitions(-fdiagnostics-color=always)
|
add_definitions(-fdiagnostics-color=always)
|
||||||
endif()
|
endif()
|
||||||
|
@ -131,6 +131,7 @@ if(${CMAKE_GENERATOR} STREQUAL "Xcode")
|
||||||
set (CMAKE_XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE YES)
|
set (CMAKE_XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE YES)
|
||||||
set (CMAKE_XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VARIABLE YES)
|
set (CMAKE_XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VARIABLE YES)
|
||||||
set (CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_DOCUMENTATION_COMMENTS YES)
|
set (CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_DOCUMENTATION_COMMENTS YES)
|
||||||
|
set (CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_MISSING_PROTOTYPES YES)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Make it easy to enable one of Clang's/gcc's analyzers, and default to using
|
# Make it easy to enable one of Clang's/gcc's analyzers, and default to using
|
||||||
|
|
|
@ -28,21 +28,24 @@ typedef struct {
|
||||||
#define CU_TestProxyName(suite, test) \
|
#define CU_TestProxyName(suite, test) \
|
||||||
CU_TestProxy_ ## suite ## _ ## test
|
CU_TestProxy_ ## suite ## _ ## test
|
||||||
|
|
||||||
#define CU_Init(suite) \
|
|
||||||
int CU_InitName(suite)(void)
|
|
||||||
#define CU_InitDecl(suite) \
|
#define CU_InitDecl(suite) \
|
||||||
extern CU_Init(suite)
|
extern int CU_InitName(suite)(void)
|
||||||
|
#define CU_Init(suite) \
|
||||||
|
CU_InitDecl(suite); \
|
||||||
|
int CU_InitName(suite)(void)
|
||||||
|
|
||||||
#define CU_Clean(suite) \
|
|
||||||
int CU_CleanName(suite)(void)
|
|
||||||
#define CU_CleanDecl(suite) \
|
#define CU_CleanDecl(suite) \
|
||||||
extern CU_Clean(suite)
|
extern int CU_CleanName(suite)(void)
|
||||||
|
#define CU_Clean(suite) \
|
||||||
|
CU_CleanDecl(suite); \
|
||||||
|
int CU_CleanName(suite)(void)
|
||||||
|
|
||||||
/* CU_Test generates a wrapper function that takes care of per-test
|
/* CU_Test generates a wrapper function that takes care of per-test
|
||||||
initialization and deinitialization, if provided in the CU_Test
|
initialization and deinitialization, if provided in the CU_Test
|
||||||
signature. */
|
signature. */
|
||||||
#define CU_Test(suite, test, ...) \
|
#define CU_Test(suite, test, ...) \
|
||||||
static void CU_TestName(suite, test)(void); \
|
static void CU_TestName(suite, test)(void); \
|
||||||
|
void CU_TestProxyName(suite, test)(void); \
|
||||||
\
|
\
|
||||||
void CU_TestProxyName(suite, test)(void) { \
|
void CU_TestProxyName(suite, test)(void) { \
|
||||||
cu_data_t data = CU_Fixture(__VA_ARGS__); \
|
cu_data_t data = CU_Fixture(__VA_ARGS__); \
|
||||||
|
|
|
@ -44,6 +44,7 @@ extern "C" {
|
||||||
|
|
||||||
#define CU_Theory(signature, suite, test, ...) \
|
#define CU_Theory(signature, suite, test, ...) \
|
||||||
static void CU_TestName(suite, test) signature; \
|
static void CU_TestName(suite, test) signature; \
|
||||||
|
void CU_TestProxyName(suite, test)(void); \
|
||||||
\
|
\
|
||||||
void CU_TestProxyName(suite, test)(void) { \
|
void CU_TestProxyName(suite, test)(void) { \
|
||||||
cu_data_t data = CU_Fixture(__VA_ARGS__); \
|
cu_data_t data = CU_Fixture(__VA_ARGS__); \
|
||||||
|
|
|
@ -217,12 +217,14 @@ static int lwregs_delete (struct lwregs *rt, uint64_t iid, uint64_t wr_iid)
|
||||||
return ddsrt_ehh_remove (rt->regs, &dummy);
|
return ddsrt_ehh_remove (rt->regs, &dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
void lwregs_dump (struct lwregs *rt)
|
void lwregs_dump (struct lwregs *rt)
|
||||||
{
|
{
|
||||||
struct ddsrt_ehh_iter it;
|
struct ddsrt_ehh_iter it;
|
||||||
for (struct lwreg *r = ddsrt_ehh_iter_first(rt->regs, &it); r; r = ddsrt_ehh_iter_next(&it))
|
for (struct lwreg *r = ddsrt_ehh_iter_first(rt->regs, &it); r; r = ddsrt_ehh_iter_next(&it))
|
||||||
printf("iid=%"PRIu64" wr_iid=%"PRIu64"\n", r->iid, r->wr_iid);
|
printf("iid=%"PRIu64" wr_iid=%"PRIu64"\n", r->iid, r->wr_iid);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*************************
|
/*************************
|
||||||
****** RHC ******
|
****** RHC ******
|
||||||
|
|
|
@ -126,7 +126,7 @@ static void from_entity_pwr (struct ddsi_serdata_builtintopic *d, const struct p
|
||||||
assert (d->xqos.present & QP_TYPE_NAME);
|
assert (d->xqos.present & QP_TYPE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ddsi_serdata *ddsi_serdata_builtin_from_keyhash (const struct ddsi_sertopic *tpcmn, const nn_keyhash_t *keyhash)
|
static struct ddsi_serdata *ddsi_serdata_builtin_from_keyhash (const struct ddsi_sertopic *tpcmn, const nn_keyhash_t *keyhash)
|
||||||
{
|
{
|
||||||
/* FIXME: not quite elegant to manage the creation of a serdata for a built-in topic via this function, but I also find it quite unelegant to let from_sample read straight from the underlying internal entity, and to_sample convert to the external format ... I could claim the internal entity is the "serialised form", but that forces wrapping it in a fragchain in one way or another, which, though possible, is also a bit lacking in elegance. */
|
/* FIXME: not quite elegant to manage the creation of a serdata for a built-in topic via this function, but I also find it quite unelegant to let from_sample read straight from the underlying internal entity, and to_sample convert to the external format ... I could claim the internal entity is the "serialised form", but that forces wrapping it in a fragchain in one way or another, which, though possible, is also a bit lacking in elegance. */
|
||||||
const struct ddsi_sertopic_builtintopic *tp = (const struct ddsi_sertopic_builtintopic *)tpcmn;
|
const struct ddsi_sertopic_builtintopic *tp = (const struct ddsi_sertopic_builtintopic *)tpcmn;
|
||||||
|
|
|
@ -133,7 +133,7 @@ static bool dds_waitset_remove_from_list (dds_attachment **list, dds_entity_t ob
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t dds_waitset_close (struct dds_entity *e)
|
static dds_return_t dds_waitset_close (struct dds_entity *e)
|
||||||
{
|
{
|
||||||
dds_waitset *ws = (dds_waitset *) e;
|
dds_waitset *ws = (dds_waitset *) e;
|
||||||
dds_waitset_close_list (&ws->observed, e->m_hdllink.hdl);
|
dds_waitset_close_list (&ws->observed, e->m_hdllink.hdl);
|
||||||
|
@ -206,7 +206,7 @@ static void dds_waitset_remove (dds_waitset *ws, dds_entity_t observed)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is called when the observed entity signals a status change. */
|
/* This is called when the observed entity signals a status change. */
|
||||||
void dds_waitset_observer (dds_entity_t observer, dds_entity_t observed, uint32_t status)
|
static void dds_waitset_observer (dds_entity_t observer, dds_entity_t observed, uint32_t status)
|
||||||
{
|
{
|
||||||
dds_waitset *ws;
|
dds_waitset *ws;
|
||||||
if (dds_waitset_lock (observer, &ws) == DDS_RETCODE_OK) {
|
if (dds_waitset_lock (observer, &ws) == DDS_RETCODE_OK) {
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
static dds_entity_t entity = -1;
|
static dds_entity_t entity = -1;
|
||||||
|
|
||||||
/* Fixture to create prerequisite entity */
|
/* Fixture to create prerequisite entity */
|
||||||
void create_entity(void)
|
static void create_entity(void)
|
||||||
{
|
{
|
||||||
CU_ASSERT_EQUAL_FATAL(entity, -1);
|
CU_ASSERT_EQUAL_FATAL(entity, -1);
|
||||||
entity = dds_create_participant(DDS_DOMAIN_DEFAULT, NULL, NULL);
|
entity = dds_create_participant(DDS_DOMAIN_DEFAULT, NULL, NULL);
|
||||||
|
@ -32,7 +32,7 @@ void create_entity(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fixture to delete prerequisite entity */
|
/* Fixture to delete prerequisite entity */
|
||||||
void delete_entity(void)
|
static void delete_entity(void)
|
||||||
{
|
{
|
||||||
CU_ASSERT_FATAL(entity > 0);
|
CU_ASSERT_FATAL(entity > 0);
|
||||||
dds_return_t ret = dds_delete(entity);
|
dds_return_t ret = dds_delete(entity);
|
||||||
|
@ -66,7 +66,7 @@ CU_Test(ddsc_entity, enable, .init = create_entity, .fini = delete_entity)
|
||||||
CU_ASSERT_EQUAL_FATAL(status, DDS_RETCODE_OK);
|
CU_ASSERT_EQUAL_FATAL(status, DDS_RETCODE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
void entity_qos_get_set(dds_entity_t e, const char* info)
|
static void entity_qos_get_set(dds_entity_t e, const char* info)
|
||||||
{
|
{
|
||||||
dds_return_t status;
|
dds_return_t status;
|
||||||
dds_qos_t *qos = dds_create_qos();
|
dds_qos_t *qos = dds_create_qos();
|
||||||
|
|
|
@ -15,9 +15,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "CUnit/Test.h"
|
#include "CUnit/Test.h"
|
||||||
|
|
||||||
dds_entity_t participant = 0, topic = 0, reader = 0, read_condition = 0;
|
static dds_entity_t participant = 0, topic = 0, reader = 0, read_condition = 0;
|
||||||
|
|
||||||
void create_entities(void)
|
static void create_entities(void)
|
||||||
{
|
{
|
||||||
participant = dds_create_participant(DDS_DOMAIN_DEFAULT, NULL, NULL);
|
participant = dds_create_participant(DDS_DOMAIN_DEFAULT, NULL, NULL);
|
||||||
CU_ASSERT_FATAL(participant > 0);
|
CU_ASSERT_FATAL(participant > 0);
|
||||||
|
@ -32,7 +32,7 @@ void create_entities(void)
|
||||||
CU_ASSERT_FATAL(read_condition > 0);
|
CU_ASSERT_FATAL(read_condition > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void delete_entities(void)
|
static void delete_entities(void)
|
||||||
{
|
{
|
||||||
dds_return_t result;
|
dds_return_t result;
|
||||||
result = dds_delete(participant);
|
result = dds_delete(participant);
|
||||||
|
|
|
@ -230,6 +230,7 @@ DDS_EXPORT nn_plist_t *nn_plist_dup (const nn_plist_t *src);
|
||||||
*/
|
*/
|
||||||
DDS_EXPORT dds_return_t nn_plist_init_frommsg (nn_plist_t *dest, char **nextafterplist, uint64_t pwanted, uint64_t qwanted, const nn_plist_src_t *src);
|
DDS_EXPORT dds_return_t nn_plist_init_frommsg (nn_plist_t *dest, char **nextafterplist, uint64_t pwanted, uint64_t qwanted, const nn_plist_src_t *src);
|
||||||
DDS_EXPORT void nn_plist_fini (nn_plist_t *ps);
|
DDS_EXPORT void nn_plist_fini (nn_plist_t *ps);
|
||||||
|
DDS_EXPORT void nn_plist_unalias (nn_plist_t *plist);
|
||||||
DDS_EXPORT void nn_plist_addtomsg (struct nn_xmsg *m, const nn_plist_t *ps, uint64_t pwanted, uint64_t qwanted);
|
DDS_EXPORT void nn_plist_addtomsg (struct nn_xmsg *m, const nn_plist_t *ps, uint64_t pwanted, uint64_t qwanted);
|
||||||
DDS_EXPORT void nn_plist_init_default_participant (nn_plist_t *plist);
|
DDS_EXPORT void nn_plist_init_default_participant (nn_plist_t *plist);
|
||||||
|
|
||||||
|
|
|
@ -120,23 +120,8 @@ void nn_xmsg_submsg_init (struct nn_xmsg *msg, struct nn_xmsg_marker marker, Sub
|
||||||
void nn_xmsg_add_timestamp (struct nn_xmsg *m, nn_wctime_t t);
|
void nn_xmsg_add_timestamp (struct nn_xmsg *m, nn_wctime_t t);
|
||||||
void nn_xmsg_add_entityid (struct nn_xmsg * m);
|
void nn_xmsg_add_entityid (struct nn_xmsg * m);
|
||||||
void *nn_xmsg_addpar (struct nn_xmsg *m, nn_parameterid_t pid, size_t len);
|
void *nn_xmsg_addpar (struct nn_xmsg *m, nn_parameterid_t pid, size_t len);
|
||||||
void nn_xmsg_addpar_string (struct nn_xmsg *m, nn_parameterid_t pid, const char *str);
|
|
||||||
void nn_xmsg_addpar_octetseq (struct nn_xmsg *m, nn_parameterid_t pid, const ddsi_octetseq_t *oseq);
|
|
||||||
void nn_xmsg_addpar_stringseq (struct nn_xmsg *m, nn_parameterid_t pid, const ddsi_stringseq_t *sseq);
|
|
||||||
void nn_xmsg_addpar_guid (struct nn_xmsg *m, nn_parameterid_t pid, const nn_guid_t *guid);
|
|
||||||
void nn_xmsg_addpar_BE4u (struct nn_xmsg *m, nn_parameterid_t pid, uint32_t x);
|
|
||||||
void nn_xmsg_addpar_4u (struct nn_xmsg *m, nn_parameterid_t pid, uint32_t x);
|
|
||||||
void nn_xmsg_addpar_keyhash (struct nn_xmsg *m, const struct ddsi_serdata *serdata);
|
void nn_xmsg_addpar_keyhash (struct nn_xmsg *m, const struct ddsi_serdata *serdata);
|
||||||
void nn_xmsg_addpar_statusinfo (struct nn_xmsg *m, uint32_t statusinfo);
|
void nn_xmsg_addpar_statusinfo (struct nn_xmsg *m, unsigned statusinfo);
|
||||||
void nn_xmsg_addpar_reliability (struct nn_xmsg *m, nn_parameterid_t pid, const struct dds_reliability_qospolicy *rq);
|
|
||||||
void nn_xmsg_addpar_duration (struct nn_xmsg *m, nn_parameterid_t pid, const dds_duration_t dur);
|
|
||||||
void nn_xmsg_addpar_subscription_keys (struct nn_xmsg *m, nn_parameterid_t pid, const struct dds_subscription_keys_qospolicy *rq);
|
|
||||||
void nn_xmsg_addpar_durability_service (struct nn_xmsg *m, nn_parameterid_t pid, const dds_durability_service_qospolicy_t *rq);
|
|
||||||
void nn_xmsg_addpar_reader_lifespan (struct nn_xmsg *m, nn_parameterid_t pid, const dds_reader_lifespan_qospolicy_t *rq);
|
|
||||||
void nn_xmsg_addpar_reader_data_lifecycle (struct nn_xmsg *m, nn_parameterid_t pid, const dds_reader_data_lifecycle_qospolicy_t *rq);
|
|
||||||
void nn_xmsg_addpar_liveliness (struct nn_xmsg *m, nn_parameterid_t pid, const dds_liveliness_qospolicy_t *rq);
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_parvinfo (struct nn_xmsg *m, nn_parameterid_t pid, const struct nn_prismtech_participant_version_info *pvi);
|
|
||||||
void nn_xmsg_addpar_sentinel (struct nn_xmsg *m);
|
void nn_xmsg_addpar_sentinel (struct nn_xmsg *m);
|
||||||
int nn_xmsg_addpar_sentinel_ifparam (struct nn_xmsg *m);
|
int nn_xmsg_addpar_sentinel_ifparam (struct nn_xmsg *m);
|
||||||
|
|
||||||
|
|
|
@ -333,7 +333,7 @@ static struct ddsi_serdata *serdata_default_from_ser_nokey (const struct ddsi_se
|
||||||
return fix_serdata_default_nokey (d, tpcmn->serdata_basehash);
|
return fix_serdata_default_nokey (d, tpcmn->serdata_basehash);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ddsi_serdata *ddsi_serdata_from_keyhash_cdr (const struct ddsi_sertopic *tpcmn, const nn_keyhash_t *keyhash)
|
static struct ddsi_serdata *ddsi_serdata_from_keyhash_cdr (const struct ddsi_sertopic *tpcmn, const nn_keyhash_t *keyhash)
|
||||||
{
|
{
|
||||||
/* FIXME: not quite sure this is correct, though a check against a specially hacked OpenSplice suggests it is */
|
/* FIXME: not quite sure this is correct, though a check against a specially hacked OpenSplice suggests it is */
|
||||||
const struct ddsi_sertopic_default *tp = (const struct ddsi_sertopic_default *)tpcmn;
|
const struct ddsi_sertopic_default *tp = (const struct ddsi_sertopic_default *)tpcmn;
|
||||||
|
@ -360,7 +360,7 @@ struct ddsi_serdata *ddsi_serdata_from_keyhash_cdr (const struct ddsi_sertopic *
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ddsi_serdata *ddsi_serdata_from_keyhash_cdr_nokey (const struct ddsi_sertopic *tpcmn, const nn_keyhash_t *keyhash)
|
static struct ddsi_serdata *ddsi_serdata_from_keyhash_cdr_nokey (const struct ddsi_sertopic *tpcmn, const nn_keyhash_t *keyhash)
|
||||||
{
|
{
|
||||||
const struct ddsi_sertopic_default *tp = (const struct ddsi_sertopic_default *)tpcmn;
|
const struct ddsi_sertopic_default *tp = (const struct ddsi_sertopic_default *)tpcmn;
|
||||||
struct ddsi_serdata_default *d = serdata_default_new(tp, SDK_KEY);
|
struct ddsi_serdata_default *d = serdata_default_new(tp, SDK_KEY);
|
||||||
|
|
|
@ -408,7 +408,7 @@ static void ddsi_udp_release_conn (ddsi_tran_conn_t conn)
|
||||||
ddsrt_free (conn);
|
ddsrt_free (conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ddsi_udp_fini (void)
|
static void ddsi_udp_fini (void)
|
||||||
{
|
{
|
||||||
if(ddsrt_atomic_dec32_nv (&ddsi_udp_init_g) == 0) {
|
if(ddsrt_atomic_dec32_nv (&ddsi_udp_init_g) == 0) {
|
||||||
free_group_membership(ddsi_udp_config_g.mship);
|
free_group_membership(ddsi_udp_config_g.mship);
|
||||||
|
|
|
@ -384,24 +384,6 @@ void copy_addrset_into_addrset_no_ssm (struct addrset *as, const struct addrset
|
||||||
copy_addrset_into_addrset_uc (as, asadd);
|
copy_addrset_into_addrset_uc (as, asadd);
|
||||||
copy_addrset_into_addrset_no_ssm_mc (as, asadd);
|
copy_addrset_into_addrset_no_ssm_mc (as, asadd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addrset_purge_ssm (struct addrset *as)
|
|
||||||
{
|
|
||||||
struct addrset_node *n;
|
|
||||||
LOCK (as);
|
|
||||||
n = ddsrt_avl_cfind_min (&addrset_treedef, &as->mcaddrs);
|
|
||||||
while (n)
|
|
||||||
{
|
|
||||||
struct addrset_node *n1 = n;
|
|
||||||
n = ddsrt_avl_cfind_succ (&addrset_treedef, &as->mcaddrs, n);
|
|
||||||
if (ddsi_is_ssm_mcaddr (&n1->loc))
|
|
||||||
{
|
|
||||||
ddsrt_avl_cdelete (&addrset_treedef, &as->mcaddrs, n1);
|
|
||||||
ddsrt_free (n1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
UNLOCK (as);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
size_t addrset_count (const struct addrset *as)
|
size_t addrset_count (const struct addrset *as)
|
||||||
|
|
|
@ -190,7 +190,7 @@ static void entity_common_fini (struct entity_common *e)
|
||||||
ddsrt_mutex_destroy (&e->lock);
|
ddsrt_mutex_destroy (&e->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void local_reader_ary_init (struct local_reader_ary *x)
|
static void local_reader_ary_init (struct local_reader_ary *x)
|
||||||
{
|
{
|
||||||
ddsrt_mutex_init (&x->rdary_lock);
|
ddsrt_mutex_init (&x->rdary_lock);
|
||||||
x->valid = 1;
|
x->valid = 1;
|
||||||
|
@ -200,13 +200,13 @@ void local_reader_ary_init (struct local_reader_ary *x)
|
||||||
x->rdary[0] = NULL;
|
x->rdary[0] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void local_reader_ary_fini (struct local_reader_ary *x)
|
static void local_reader_ary_fini (struct local_reader_ary *x)
|
||||||
{
|
{
|
||||||
ddsrt_free (x->rdary);
|
ddsrt_free (x->rdary);
|
||||||
ddsrt_mutex_destroy (&x->rdary_lock);
|
ddsrt_mutex_destroy (&x->rdary_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void local_reader_ary_insert (struct local_reader_ary *x, struct reader *rd)
|
static void local_reader_ary_insert (struct local_reader_ary *x, struct reader *rd)
|
||||||
{
|
{
|
||||||
ddsrt_mutex_lock (&x->rdary_lock);
|
ddsrt_mutex_lock (&x->rdary_lock);
|
||||||
x->n_readers++;
|
x->n_readers++;
|
||||||
|
@ -216,7 +216,7 @@ void local_reader_ary_insert (struct local_reader_ary *x, struct reader *rd)
|
||||||
ddsrt_mutex_unlock (&x->rdary_lock);
|
ddsrt_mutex_unlock (&x->rdary_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void local_reader_ary_remove (struct local_reader_ary *x, struct reader *rd)
|
static void local_reader_ary_remove (struct local_reader_ary *x, struct reader *rd)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
ddsrt_mutex_lock (&x->rdary_lock);
|
ddsrt_mutex_lock (&x->rdary_lock);
|
||||||
|
@ -242,7 +242,7 @@ void local_reader_ary_setfastpath_ok (struct local_reader_ary *x, bool fastpath_
|
||||||
ddsrt_mutex_unlock (&x->rdary_lock);
|
ddsrt_mutex_unlock (&x->rdary_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void local_reader_ary_setinvalid (struct local_reader_ary *x)
|
static void local_reader_ary_setinvalid (struct local_reader_ary *x)
|
||||||
{
|
{
|
||||||
ddsrt_mutex_lock (&x->rdary_lock);
|
ddsrt_mutex_lock (&x->rdary_lock);
|
||||||
x->valid = 0;
|
x->valid = 0;
|
||||||
|
|
|
@ -46,7 +46,7 @@ extern inline void thread_state_awake_to_awake_no_nest (struct thread_state1 *ts
|
||||||
|
|
||||||
static struct thread_state1 *init_thread_state (const char *tname, enum thread_state state);
|
static struct thread_state1 *init_thread_state (const char *tname, enum thread_state state);
|
||||||
|
|
||||||
void *ddsrt_malloc_aligned_cacheline (size_t size)
|
static void *ddsrt_malloc_aligned_cacheline (size_t size)
|
||||||
{
|
{
|
||||||
/* This wastes some space, but we use it only once and it isn't a
|
/* This wastes some space, but we use it only once and it isn't a
|
||||||
huge amount of memory, just a little over a cache line.
|
huge amount of memory, just a little over a cache line.
|
||||||
|
|
|
@ -147,7 +147,7 @@ typedef struct {
|
||||||
ddsrt_cond_t cv;
|
ddsrt_cond_t cv;
|
||||||
} ddsi_sem_t;
|
} ddsi_sem_t;
|
||||||
|
|
||||||
dds_return_t
|
static dds_return_t
|
||||||
ddsi_sem_init (ddsi_sem_t *sem, uint32_t value)
|
ddsi_sem_init (ddsi_sem_t *sem, uint32_t value)
|
||||||
{
|
{
|
||||||
sem->value = value;
|
sem->value = value;
|
||||||
|
@ -156,7 +156,7 @@ ddsi_sem_init (ddsi_sem_t *sem, uint32_t value)
|
||||||
return DDS_RETCODE_OK;
|
return DDS_RETCODE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t
|
static dds_return_t
|
||||||
ddsi_sem_destroy (ddsi_sem_t *sem)
|
ddsi_sem_destroy (ddsi_sem_t *sem)
|
||||||
{
|
{
|
||||||
ddsrt_cond_destroy (&sem->cv);
|
ddsrt_cond_destroy (&sem->cv);
|
||||||
|
@ -164,7 +164,7 @@ ddsi_sem_destroy (ddsi_sem_t *sem)
|
||||||
return DDS_RETCODE_OK;
|
return DDS_RETCODE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t
|
static dds_return_t
|
||||||
ddsi_sem_post (ddsi_sem_t *sem)
|
ddsi_sem_post (ddsi_sem_t *sem)
|
||||||
{
|
{
|
||||||
ddsrt_mutex_lock (&sem->mtx);
|
ddsrt_mutex_lock (&sem->mtx);
|
||||||
|
@ -174,7 +174,7 @@ ddsi_sem_post (ddsi_sem_t *sem)
|
||||||
return DDS_RETCODE_OK;
|
return DDS_RETCODE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t
|
static dds_return_t
|
||||||
ddsi_sem_wait (ddsi_sem_t *sem)
|
ddsi_sem_wait (ddsi_sem_t *sem)
|
||||||
{
|
{
|
||||||
ddsrt_mutex_lock (&sem->mtx);
|
ddsrt_mutex_lock (&sem->mtx);
|
||||||
|
@ -763,41 +763,6 @@ void nn_xmsg_setwriterseq_fragid (struct nn_xmsg *msg, const nn_guid_t *wrguid,
|
||||||
msg->kindspecific.data.wrfragid = wrfragid;
|
msg->kindspecific.data.wrfragid = wrfragid;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t nn_xmsg_add_string_padded(unsigned char *buf, char *str)
|
|
||||||
{
|
|
||||||
size_t len = strlen (str) + 1;
|
|
||||||
assert (len <= UINT32_MAX);
|
|
||||||
if (buf) {
|
|
||||||
/* Add cdr string */
|
|
||||||
struct cdrstring *p = (struct cdrstring *) buf;
|
|
||||||
p->length = (uint32_t)len;
|
|
||||||
memcpy (p->contents, str, len);
|
|
||||||
/* clear padding */
|
|
||||||
if (len < align4u (len)) {
|
|
||||||
memset (p->contents + len, 0, align4u (len) - len);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
len = 4 + /* cdr string len arg + */
|
|
||||||
align4u(len); /* strlen + possible padding */
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t nn_xmsg_add_octseq_padded(unsigned char *buf, ddsi_octetseq_t *seq)
|
|
||||||
{
|
|
||||||
uint32_t len = seq->length;
|
|
||||||
if (buf) {
|
|
||||||
/* Add cdr octet seq */
|
|
||||||
*((uint32_t *) buf) = len;
|
|
||||||
buf += sizeof (uint32_t);
|
|
||||||
memcpy (buf, seq->value, len);
|
|
||||||
/* clear padding */
|
|
||||||
if (len < align4u (len)) {
|
|
||||||
memset (buf + len, 0, align4u (len) - len);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 4 + align4u (len);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *nn_xmsg_addpar (struct nn_xmsg *m, nn_parameterid_t pid, size_t len)
|
void *nn_xmsg_addpar (struct nn_xmsg *m, nn_parameterid_t pid, size_t len)
|
||||||
{
|
{
|
||||||
const size_t len4 = (len + 3) & ~(size_t)3; /* must alloc a multiple of 4 */
|
const size_t len4 = (len + 3) & ~(size_t)3; /* must alloc a multiple of 4 */
|
||||||
|
@ -816,43 +781,6 @@ void *nn_xmsg_addpar (struct nn_xmsg *m, nn_parameterid_t pid, size_t len)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void nn_xmsg_addpar_string (struct nn_xmsg *m, nn_parameterid_t pid, const char *str)
|
|
||||||
{
|
|
||||||
struct cdrstring *p;
|
|
||||||
size_t len = strlen (str) + 1;
|
|
||||||
p = nn_xmsg_addpar (m, pid, 4 + len);
|
|
||||||
p->length = (uint32_t) len;
|
|
||||||
memcpy (p->contents, str, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_octetseq (struct nn_xmsg *m, nn_parameterid_t pid, const ddsi_octetseq_t *oseq)
|
|
||||||
{
|
|
||||||
char *p = nn_xmsg_addpar (m, pid, 4 + oseq->length);
|
|
||||||
*((unsigned *) p) = oseq->length;
|
|
||||||
memcpy (p + sizeof (int), oseq->value, oseq->length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_stringseq (struct nn_xmsg *m, nn_parameterid_t pid, const ddsi_stringseq_t *sseq)
|
|
||||||
{
|
|
||||||
unsigned char *tmp;
|
|
||||||
uint32_t i;
|
|
||||||
size_t len = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < sseq->n; i++)
|
|
||||||
{
|
|
||||||
len += nn_xmsg_add_string_padded(NULL, sseq->strs[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
tmp = nn_xmsg_addpar (m, pid, 4 + len);
|
|
||||||
|
|
||||||
*((uint32_t *) tmp) = sseq->n;
|
|
||||||
tmp += sizeof (uint32_t);
|
|
||||||
for (i = 0; i < sseq->n; i++)
|
|
||||||
{
|
|
||||||
tmp += nn_xmsg_add_string_padded(tmp, sseq->strs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_keyhash (struct nn_xmsg *m, const struct ddsi_serdata *serdata)
|
void nn_xmsg_addpar_keyhash (struct nn_xmsg *m, const struct ddsi_serdata *serdata)
|
||||||
{
|
{
|
||||||
if (serdata->kind != SDK_EMPTY)
|
if (serdata->kind != SDK_EMPTY)
|
||||||
|
@ -863,78 +791,7 @@ void nn_xmsg_addpar_keyhash (struct nn_xmsg *m, const struct ddsi_serdata *serda
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void nn_xmsg_addpar_guid (struct nn_xmsg *m, nn_parameterid_t pid, const nn_guid_t *guid)
|
static void nn_xmsg_addpar_BE4u (struct nn_xmsg *m, nn_parameterid_t pid, uint32_t x)
|
||||||
{
|
|
||||||
unsigned *pu;
|
|
||||||
int i;
|
|
||||||
pu = nn_xmsg_addpar (m, pid, 16);
|
|
||||||
for (i = 0; i < 3; i++)
|
|
||||||
{
|
|
||||||
pu[i] = toBE4u (guid->prefix.u[i]);
|
|
||||||
}
|
|
||||||
pu[i] = toBE4u (guid->entityid.u);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_reliability (struct nn_xmsg *m, nn_parameterid_t pid, const struct dds_reliability_qospolicy *rq)
|
|
||||||
{
|
|
||||||
struct dds_external_reliability_qospolicy *p;
|
|
||||||
p = nn_xmsg_addpar (m, pid, sizeof (*p));
|
|
||||||
switch (rq->kind)
|
|
||||||
{
|
|
||||||
case DDS_RELIABILITY_BEST_EFFORT:
|
|
||||||
p->kind = DDS_EXTERNAL_RELIABILITY_BEST_EFFORT;
|
|
||||||
break;
|
|
||||||
case DDS_RELIABILITY_RELIABLE:
|
|
||||||
p->kind = DDS_EXTERNAL_RELIABILITY_RELIABLE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
assert (0);
|
|
||||||
}
|
|
||||||
p->max_blocking_time = nn_to_ddsi_duration (rq->max_blocking_time);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_duration (struct nn_xmsg *m, nn_parameterid_t pid, const dds_duration_t rq)
|
|
||||||
{
|
|
||||||
ddsi_duration_t *p = nn_xmsg_addpar (m, pid, sizeof (*p));
|
|
||||||
*p = nn_to_ddsi_duration (rq);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_durability_service (struct nn_xmsg *m, nn_parameterid_t pid, const dds_durability_service_qospolicy_t *rq)
|
|
||||||
{
|
|
||||||
dds_external_durability_service_qospolicy_t *p = nn_xmsg_addpar (m, pid, sizeof (*p));
|
|
||||||
p->history = rq->history;
|
|
||||||
p->resource_limits = rq->resource_limits;
|
|
||||||
p->service_cleanup_delay = nn_to_ddsi_duration (rq->service_cleanup_delay);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_reader_lifespan (struct nn_xmsg *m, nn_parameterid_t pid, const dds_reader_lifespan_qospolicy_t *rq)
|
|
||||||
{
|
|
||||||
dds_external_reader_lifespan_qospolicy_t *p = nn_xmsg_addpar (m, pid, sizeof (*p));
|
|
||||||
p->use_lifespan = rq->use_lifespan;
|
|
||||||
p->duration = nn_to_ddsi_duration (rq->duration);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_reader_data_lifecycle (struct nn_xmsg *m, nn_parameterid_t pid, const dds_reader_data_lifecycle_qospolicy_t *rq)
|
|
||||||
{
|
|
||||||
dds_external_reader_data_lifecycle_qospolicy_t *p = nn_xmsg_addpar (m, pid, sizeof (*p));
|
|
||||||
p->autopurge_disposed_samples_delay = nn_to_ddsi_duration (rq->autopurge_disposed_samples_delay);
|
|
||||||
p->autopurge_nowriter_samples_delay = nn_to_ddsi_duration (rq->autopurge_nowriter_samples_delay);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_liveliness (struct nn_xmsg *m, nn_parameterid_t pid, const dds_liveliness_qospolicy_t *rq)
|
|
||||||
{
|
|
||||||
dds_external_liveliness_qospolicy_t *p = nn_xmsg_addpar (m, pid, sizeof (*p));
|
|
||||||
p->kind = rq->kind;
|
|
||||||
p->lease_duration = nn_to_ddsi_duration (rq->lease_duration);
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_4u (struct nn_xmsg *m, nn_parameterid_t pid, uint32_t x)
|
|
||||||
{
|
|
||||||
unsigned *p = nn_xmsg_addpar (m, pid, sizeof (x));
|
|
||||||
*p = x;
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_BE4u (struct nn_xmsg *m, nn_parameterid_t pid, uint32_t x)
|
|
||||||
{
|
{
|
||||||
unsigned *p = nn_xmsg_addpar (m, pid, sizeof (x));
|
unsigned *p = nn_xmsg_addpar (m, pid, sizeof (x));
|
||||||
*p = toBE4u (x);
|
*p = toBE4u (x);
|
||||||
|
@ -956,40 +813,6 @@ void nn_xmsg_addpar_statusinfo (struct nn_xmsg *m, unsigned statusinfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void nn_xmsg_addpar_subscription_keys (struct nn_xmsg *m, nn_parameterid_t pid, const struct dds_subscription_keys_qospolicy *q)
|
|
||||||
{
|
|
||||||
unsigned char *tmp;
|
|
||||||
size_t len = 8; /* use_key_list, length of key_list */
|
|
||||||
|
|
||||||
for (uint32_t i = 0; i < q->key_list.n; i++)
|
|
||||||
{
|
|
||||||
size_t len1 = strlen (q->key_list.strs[i]) + 1;
|
|
||||||
len += 4 + align4u (len1);
|
|
||||||
}
|
|
||||||
|
|
||||||
tmp = nn_xmsg_addpar (m, pid, len);
|
|
||||||
|
|
||||||
tmp[0] = q->use_key_list;
|
|
||||||
for (uint32_t i = 1; i < sizeof (int); i++)
|
|
||||||
{
|
|
||||||
tmp[i] = 0;
|
|
||||||
}
|
|
||||||
tmp += sizeof (int);
|
|
||||||
*((uint32_t *) tmp) = q->key_list.n;
|
|
||||||
tmp += sizeof (uint32_t);
|
|
||||||
for (uint32_t i = 0; i < q->key_list.n; i++)
|
|
||||||
{
|
|
||||||
struct cdrstring *p = (struct cdrstring *) tmp;
|
|
||||||
size_t len1 = strlen (q->key_list.strs[i]) + 1;
|
|
||||||
assert (len1 <= UINT32_MAX);
|
|
||||||
p->length = (uint32_t)len1;
|
|
||||||
memcpy (p->contents, q->key_list.strs[i], len1);
|
|
||||||
if (len1 < align4u (len1))
|
|
||||||
memset (p->contents + len1, 0, align4u (len1) - len1);
|
|
||||||
tmp += 4 + align4u (len1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void nn_xmsg_addpar_sentinel (struct nn_xmsg * m)
|
void nn_xmsg_addpar_sentinel (struct nn_xmsg * m)
|
||||||
{
|
{
|
||||||
nn_xmsg_addpar (m, PID_SENTINEL, 0);
|
nn_xmsg_addpar (m, PID_SENTINEL, 0);
|
||||||
|
@ -1005,27 +828,6 @@ int nn_xmsg_addpar_sentinel_ifparam (struct nn_xmsg * m)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void nn_xmsg_addpar_parvinfo (struct nn_xmsg *m, nn_parameterid_t pid, const struct nn_prismtech_participant_version_info *pvi)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
unsigned slen;
|
|
||||||
unsigned *pu;
|
|
||||||
struct cdrstring *ps;
|
|
||||||
|
|
||||||
/* pvi->internals cannot be NULL here */
|
|
||||||
slen = (unsigned) strlen(pvi->internals) + 1; /* +1 for '\0' terminator */
|
|
||||||
pu = nn_xmsg_addpar (m, pid, NN_PRISMTECH_PARTICIPANT_VERSION_INFO_FIXED_CDRSIZE + slen);
|
|
||||||
pu[0] = pvi->version;
|
|
||||||
pu[1] = pvi->flags;
|
|
||||||
for (i = 0; i < 3; i++)
|
|
||||||
{
|
|
||||||
pu[i+2] = (pvi->unused[i]);
|
|
||||||
}
|
|
||||||
ps = (struct cdrstring *)&pu[5];
|
|
||||||
ps->length = slen;
|
|
||||||
memcpy(ps->contents, pvi->internals, slen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* XMSG_CHAIN ----------------------------------------------------------
|
/* XMSG_CHAIN ----------------------------------------------------------
|
||||||
|
|
||||||
Xpacks refer to xmsgs and need to release these after having been
|
Xpacks refer to xmsgs and need to release these after having been
|
||||||
|
|
|
@ -139,6 +139,9 @@ ddsrt_cdtor(
|
||||||
#pragma data_seg()
|
#pragma data_seg()
|
||||||
#endif
|
#endif
|
||||||
#else /* _WIN32 */
|
#else /* _WIN32 */
|
||||||
|
void __attribute__((constructor)) ddsrt_ctor(void);
|
||||||
|
void __attribute__((destructor)) ddsrt_dtor(void);
|
||||||
|
|
||||||
void __attribute__((constructor)) ddsrt_ctor(void)
|
void __attribute__((constructor)) ddsrt_ctor(void)
|
||||||
{
|
{
|
||||||
ddsrt_init();
|
ddsrt_init();
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
#include "dds/ddsrt/strtol.h"
|
#include "dds/ddsrt/strtol.h"
|
||||||
|
|
||||||
int ddsrt_todigit(const int chr)
|
static int ddsrt_todigit(const int chr)
|
||||||
{
|
{
|
||||||
if (chr >= '0' && chr <= '9') {
|
if (chr >= '0' && chr <= '9') {
|
||||||
return chr - '0';
|
return chr - '0';
|
||||||
|
|
|
@ -65,7 +65,7 @@ typedef struct {
|
||||||
ddsrt_threadattr_t *attr;
|
ddsrt_threadattr_t *attr;
|
||||||
} thread_arg_t;
|
} thread_arg_t;
|
||||||
|
|
||||||
uint32_t thread_main(void *ptr)
|
static uint32_t thread_main(void *ptr)
|
||||||
{
|
{
|
||||||
thread_arg_t *arg = (thread_arg_t *)ptr;
|
thread_arg_t *arg = (thread_arg_t *)ptr;
|
||||||
ddsrt_threadattr_t *attr;
|
ddsrt_threadattr_t *attr;
|
||||||
|
@ -193,7 +193,7 @@ CU_Test(ddsrt_thread, thread_id)
|
||||||
|
|
||||||
static ddsrt_mutex_t locks[2];
|
static ddsrt_mutex_t locks[2];
|
||||||
|
|
||||||
uint32_t thread_main_waitforme(void *ptr)
|
static uint32_t thread_main_waitforme(void *ptr)
|
||||||
{
|
{
|
||||||
uint32_t ret = 0;
|
uint32_t ret = 0;
|
||||||
(void)ptr;
|
(void)ptr;
|
||||||
|
@ -203,7 +203,7 @@ uint32_t thread_main_waitforme(void *ptr)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t thread_main_waitforit(void *ptr)
|
static uint32_t thread_main_waitforit(void *ptr)
|
||||||
{
|
{
|
||||||
uint32_t res = 0;
|
uint32_t res = 0;
|
||||||
ddsrt_thread_t *thr = (ddsrt_thread_t *)ptr;
|
ddsrt_thread_t *thr = (ddsrt_thread_t *)ptr;
|
||||||
|
|
|
@ -52,6 +52,7 @@ void MPT_ProcessEntryName(process)(args)
|
||||||
#define MPT_TestProcess(suite, test, name, process, args, ...) \
|
#define MPT_TestProcess(suite, test, name, process, args, ...) \
|
||||||
MPT_TestInitDeclaration(suite, test); \
|
MPT_TestInitDeclaration(suite, test); \
|
||||||
MPT_TestFiniDeclaration(suite, test); \
|
MPT_TestFiniDeclaration(suite, test); \
|
||||||
|
MPT_TestProcessDeclaration(suite, test, name); \
|
||||||
MPT_TestProcessDeclaration(suite, test, name) \
|
MPT_TestProcessDeclaration(suite, test, name) \
|
||||||
{ \
|
{ \
|
||||||
mpt_data_t data = MPT_Fixture(__VA_ARGS__); \
|
mpt_data_t data = MPT_Fixture(__VA_ARGS__); \
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#include "mpt/mpt.h"
|
#include "mpt/mpt.h"
|
||||||
|
|
||||||
#include "dds/dds.h"
|
#include "dds/dds.h"
|
||||||
#include "helloworlddata.h"
|
|
||||||
|
|
||||||
#include "dds/ddsrt/time.h"
|
#include "dds/ddsrt/time.h"
|
||||||
#include "dds/ddsrt/strtol.h"
|
#include "dds/ddsrt/strtol.h"
|
||||||
|
@ -14,6 +13,8 @@
|
||||||
#include "dds/ddsrt/cdtors.h"
|
#include "dds/ddsrt/cdtors.h"
|
||||||
#include "dds/ddsrt/sync.h"
|
#include "dds/ddsrt/sync.h"
|
||||||
|
|
||||||
|
#include "hello.h"
|
||||||
|
#include "helloworlddata.h"
|
||||||
|
|
||||||
/* An array of one message (aka sample in dds terms) will be used. */
|
/* An array of one message (aka sample in dds terms) will be used. */
|
||||||
#define MAX_SAMPLES 1
|
#define MAX_SAMPLES 1
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "mpt/mpt.h"
|
#include "mpt/mpt.h"
|
||||||
#include "rwdata.h"
|
|
||||||
|
|
||||||
#include "dds/dds.h"
|
#include "dds/dds.h"
|
||||||
|
|
||||||
|
@ -23,6 +22,9 @@
|
||||||
#include "dds/ddsrt/sockets.h"
|
#include "dds/ddsrt/sockets.h"
|
||||||
#include "dds/ddsrt/heap.h"
|
#include "dds/ddsrt/heap.h"
|
||||||
|
|
||||||
|
#include "ppud.h"
|
||||||
|
#include "rwdata.h"
|
||||||
|
|
||||||
void ppud_init (void) { }
|
void ppud_init (void) { }
|
||||||
void ppud_fini (void) { }
|
void ppud_fini (void) { }
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#include "mpt/mpt.h"
|
#include "mpt/mpt.h"
|
||||||
|
|
||||||
#include "dds/dds.h"
|
#include "dds/dds.h"
|
||||||
#include "rwdata.h"
|
|
||||||
|
|
||||||
#include "dds/ddsrt/time.h"
|
#include "dds/ddsrt/time.h"
|
||||||
#include "dds/ddsrt/process.h"
|
#include "dds/ddsrt/process.h"
|
||||||
|
@ -25,6 +24,9 @@
|
||||||
|
|
||||||
#include "dds/ddsi/q_xqos.h"
|
#include "dds/ddsi/q_xqos.h"
|
||||||
|
|
||||||
|
#include "rwdata.h"
|
||||||
|
#include "rw.h"
|
||||||
|
|
||||||
#define NPUB 10
|
#define NPUB 10
|
||||||
#define NWR_PUB 2
|
#define NWR_PUB 2
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#define MAX_SAMPLES 10
|
#define MAX_SAMPLES 10
|
||||||
|
|
||||||
#define MAX_DURATION_BUFSZ 21
|
#define MAX_DURATION_BUFSZ 21
|
||||||
char *qp_duration_str (char *buf, size_t bufsz, dds_duration_t d)
|
static char *qp_duration_str (char *buf, size_t bufsz, dds_duration_t d)
|
||||||
{
|
{
|
||||||
if (d == DDS_INFINITY)
|
if (d == DDS_INFINITY)
|
||||||
snprintf (buf, bufsz, "infinite");
|
snprintf (buf, bufsz, "infinite");
|
||||||
|
@ -33,7 +33,7 @@ char *qp_duration_str (char *buf, size_t bufsz, dds_duration_t d)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t printable_seq_length (const unsigned char *as, size_t n)
|
static size_t printable_seq_length (const unsigned char *as, size_t n)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
|
@ -43,7 +43,7 @@ size_t printable_seq_length (const unsigned char *as, size_t n)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_octetseq (const unsigned char *v, size_t sz, FILE *fp)
|
static void print_octetseq (const unsigned char *v, size_t sz, FILE *fp)
|
||||||
{
|
{
|
||||||
size_t i, n;
|
size_t i, n;
|
||||||
fprintf (fp, "%zu<", sz);
|
fprintf (fp, "%zu<", sz);
|
||||||
|
@ -69,7 +69,7 @@ void print_octetseq (const unsigned char *v, size_t sz, FILE *fp)
|
||||||
fprintf (fp, ">");
|
fprintf (fp, ">");
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_user_data (const dds_qos_t *q, FILE *fp)
|
static void qp_user_data (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
void *ud;
|
void *ud;
|
||||||
size_t udsz;
|
size_t udsz;
|
||||||
|
@ -82,7 +82,7 @@ void qp_user_data (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_topic_data (const dds_qos_t *q, FILE *fp)
|
static void qp_topic_data (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
void *ud;
|
void *ud;
|
||||||
size_t udsz;
|
size_t udsz;
|
||||||
|
@ -95,7 +95,7 @@ void qp_topic_data (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_group_data (const dds_qos_t *q, FILE *fp)
|
static void qp_group_data (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
void *ud;
|
void *ud;
|
||||||
size_t udsz;
|
size_t udsz;
|
||||||
|
@ -108,7 +108,7 @@ void qp_group_data (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_durability (const dds_qos_t *q, FILE *fp)
|
static void qp_durability (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_durability_kind_t kind;
|
dds_durability_kind_t kind;
|
||||||
if (dds_qget_durability (q, &kind))
|
if (dds_qget_durability (q, &kind))
|
||||||
|
@ -125,7 +125,7 @@ void qp_durability (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_history (const dds_qos_t *q, FILE *fp)
|
static void qp_history (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_history_kind_t kind;
|
dds_history_kind_t kind;
|
||||||
int32_t depth;
|
int32_t depth;
|
||||||
|
@ -144,7 +144,7 @@ void qp_history (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_resource_limits_1 (FILE *fp, int32_t max_samples, int32_t max_instances, int32_t max_samples_per_instance, int indent)
|
static void qp_resource_limits_1 (FILE *fp, int32_t max_samples, int32_t max_instances, int32_t max_samples_per_instance, int indent)
|
||||||
{
|
{
|
||||||
fprintf (fp, "%*.*sresource_limits: max_samples = ", indent, indent, "");
|
fprintf (fp, "%*.*sresource_limits: max_samples = ", indent, indent, "");
|
||||||
if (max_samples == DDS_LENGTH_UNLIMITED)
|
if (max_samples == DDS_LENGTH_UNLIMITED)
|
||||||
|
@ -163,14 +163,14 @@ void qp_resource_limits_1 (FILE *fp, int32_t max_samples, int32_t max_instances,
|
||||||
fprintf (fp, "%"PRId32"\n", max_samples_per_instance);
|
fprintf (fp, "%"PRId32"\n", max_samples_per_instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_resource_limits (const dds_qos_t *q, FILE *fp)
|
static void qp_resource_limits (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
int32_t max_samples, max_instances, max_samples_per_instance;
|
int32_t max_samples, max_instances, max_samples_per_instance;
|
||||||
if (dds_qget_resource_limits (q, &max_samples, &max_instances, &max_samples_per_instance))
|
if (dds_qget_resource_limits (q, &max_samples, &max_instances, &max_samples_per_instance))
|
||||||
qp_resource_limits_1 (fp, max_samples, max_instances, max_samples_per_instance, 2);
|
qp_resource_limits_1 (fp, max_samples, max_instances, max_samples_per_instance, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_presentation (const dds_qos_t *q, FILE *fp)
|
static void qp_presentation (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_presentation_access_scope_kind_t access_scope;
|
dds_presentation_access_scope_kind_t access_scope;
|
||||||
bool coherent_access, ordered_access;
|
bool coherent_access, ordered_access;
|
||||||
|
@ -187,7 +187,7 @@ void qp_presentation (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_duration_qos (const dds_qos_t *q, FILE *fp, const char *what, bool (*qget) (const dds_qos_t * __restrict qos, dds_duration_t *d))
|
static void qp_duration_qos (const dds_qos_t *q, FILE *fp, const char *what, bool (*qget) (const dds_qos_t * __restrict qos, dds_duration_t *d))
|
||||||
{
|
{
|
||||||
dds_duration_t d;
|
dds_duration_t d;
|
||||||
char buf[MAX_DURATION_BUFSZ];
|
char buf[MAX_DURATION_BUFSZ];
|
||||||
|
@ -195,27 +195,27 @@ void qp_duration_qos (const dds_qos_t *q, FILE *fp, const char *what, bool (*qge
|
||||||
fprintf (fp, " %s = %s\n", what, qp_duration_str (buf, sizeof (buf), d));
|
fprintf (fp, " %s = %s\n", what, qp_duration_str (buf, sizeof (buf), d));
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_lifespan (const dds_qos_t *q, FILE *fp)
|
static void qp_lifespan (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
qp_duration_qos (q, fp, "lifespan: duration", dds_qget_lifespan);
|
qp_duration_qos (q, fp, "lifespan: duration", dds_qget_lifespan);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_deadline (const dds_qos_t *q, FILE *fp)
|
static void qp_deadline (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
qp_duration_qos (q, fp, "deadline: period", dds_qget_deadline);
|
qp_duration_qos (q, fp, "deadline: period", dds_qget_deadline);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_latency_budget (const dds_qos_t *q, FILE *fp)
|
static void qp_latency_budget (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
qp_duration_qos (q, fp, "latency_budget: duration", dds_qget_latency_budget);
|
qp_duration_qos (q, fp, "latency_budget: duration", dds_qget_latency_budget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_time_based_filter (const dds_qos_t *q, FILE *fp)
|
static void qp_time_based_filter (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
qp_duration_qos (q, fp, "time_based_filter: minimum_separation", dds_qget_time_based_filter);
|
qp_duration_qos (q, fp, "time_based_filter: minimum_separation", dds_qget_time_based_filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_ownership (const dds_qos_t *q, FILE *fp)
|
static void qp_ownership (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_ownership_kind_t kind;
|
dds_ownership_kind_t kind;
|
||||||
char *s = "?";
|
char *s = "?";
|
||||||
|
@ -230,14 +230,14 @@ void qp_ownership (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_ownership_strength (const dds_qos_t *q, FILE *fp)
|
static void qp_ownership_strength (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
int32_t value;
|
int32_t value;
|
||||||
if (dds_qget_ownership_strength (q, &value))
|
if (dds_qget_ownership_strength (q, &value))
|
||||||
fprintf (fp, " ownership_strength: value = %"PRId32"\n", value);
|
fprintf (fp, " ownership_strength: value = %"PRId32"\n", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_liveliness (const dds_qos_t *q, FILE *fp)
|
static void qp_liveliness (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_liveliness_kind_t kind;
|
dds_liveliness_kind_t kind;
|
||||||
dds_duration_t lease_duration;
|
dds_duration_t lease_duration;
|
||||||
|
@ -255,7 +255,7 @@ void qp_liveliness (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_reliability (const dds_qos_t *q, FILE *fp)
|
static void qp_reliability (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_reliability_kind_t kind;
|
dds_reliability_kind_t kind;
|
||||||
dds_duration_t max_blocking_time;
|
dds_duration_t max_blocking_time;
|
||||||
|
@ -272,14 +272,14 @@ void qp_reliability (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_transport_priority (const dds_qos_t *q, FILE *fp)
|
static void qp_transport_priority (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
int32_t value;
|
int32_t value;
|
||||||
if (dds_qget_transport_priority (q, &value))
|
if (dds_qget_transport_priority (q, &value))
|
||||||
fprintf (fp, " transport_priority: priority = %"PRId32"\n", value);
|
fprintf (fp, " transport_priority: priority = %"PRId32"\n", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_destination_order (const dds_qos_t *q, FILE *fp)
|
static void qp_destination_order (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_destination_order_kind_t kind;
|
dds_destination_order_kind_t kind;
|
||||||
if (dds_qget_destination_order (q, &kind))
|
if (dds_qget_destination_order (q, &kind))
|
||||||
|
@ -294,14 +294,14 @@ void qp_destination_order (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_writer_data_lifecycle (const dds_qos_t *q, FILE *fp)
|
static void qp_writer_data_lifecycle (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
bool value;
|
bool value;
|
||||||
if (dds_qget_writer_data_lifecycle (q, &value))
|
if (dds_qget_writer_data_lifecycle (q, &value))
|
||||||
fprintf (fp, " writer_data_lifecycle: autodispose_unregistered_instances = %s\n", value ? "true" : "false");
|
fprintf (fp, " writer_data_lifecycle: autodispose_unregistered_instances = %s\n", value ? "true" : "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_reader_data_lifecycle (const dds_qos_t *q, FILE *fp)
|
static void qp_reader_data_lifecycle (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_duration_t autopurge_nowriter_samples_delay, autopurge_disposed_samples_delay;
|
dds_duration_t autopurge_nowriter_samples_delay, autopurge_disposed_samples_delay;
|
||||||
if (dds_qget_reader_data_lifecycle (q, &autopurge_nowriter_samples_delay, &autopurge_disposed_samples_delay))
|
if (dds_qget_reader_data_lifecycle (q, &autopurge_nowriter_samples_delay, &autopurge_disposed_samples_delay))
|
||||||
|
@ -311,7 +311,7 @@ void qp_reader_data_lifecycle (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_durability_service (const dds_qos_t *q, FILE *fp)
|
static void qp_durability_service (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
dds_duration_t service_cleanup_delay;
|
dds_duration_t service_cleanup_delay;
|
||||||
dds_history_kind_t history_kind;
|
dds_history_kind_t history_kind;
|
||||||
|
@ -335,7 +335,7 @@ void qp_durability_service (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_partition (const dds_qos_t *q, FILE *fp)
|
static void qp_partition (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
uint32_t n;
|
uint32_t n;
|
||||||
char **ps;
|
char **ps;
|
||||||
|
@ -360,7 +360,7 @@ void qp_partition (const dds_qos_t *q, FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qp_qos (const dds_qos_t *q, FILE *fp)
|
static void qp_qos (const dds_qos_t *q, FILE *fp)
|
||||||
{
|
{
|
||||||
qp_reliability (q, fp);
|
qp_reliability (q, fp);
|
||||||
qp_durability (q, fp);
|
qp_durability (q, fp);
|
||||||
|
@ -385,7 +385,7 @@ void qp_qos (const dds_qos_t *q, FILE *fp)
|
||||||
qp_group_data (q, fp);
|
qp_group_data (q, fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_key(FILE *fp, const char *label, const dds_builtintopic_guid_t *key)
|
static void print_key(FILE *fp, const char *label, const dds_builtintopic_guid_t *key)
|
||||||
{
|
{
|
||||||
fprintf(fp, "%s", label);
|
fprintf(fp, "%s", label);
|
||||||
for(size_t j = 0; j < sizeof (key->v); j++) {
|
for(size_t j = 0; j < sizeof (key->v); j++) {
|
||||||
|
@ -422,7 +422,7 @@ void print_dcps_topic (FILE *fp, dds_entity_t pp)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void print_dcps_participant (FILE *fp, dds_entity_t pp)
|
static void print_dcps_participant (FILE *fp, dds_entity_t pp)
|
||||||
{
|
{
|
||||||
dds_entity_t rd = dds_create_reader (pp, DDS_BUILTIN_TOPIC_DCPSPARTICIPANT, NULL, NULL);
|
dds_entity_t rd = dds_create_reader (pp, DDS_BUILTIN_TOPIC_DCPSPARTICIPANT, NULL, NULL);
|
||||||
(void)dds_reader_wait_for_historical_data (rd, DDS_SECS (5));
|
(void)dds_reader_wait_for_historical_data (rd, DDS_SECS (5));
|
||||||
|
@ -448,7 +448,7 @@ void print_dcps_participant (FILE *fp, dds_entity_t pp)
|
||||||
dds_delete (rd);
|
dds_delete (rd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_dcps_endpoint (FILE *fp, dds_entity_t pp, const char *type, dds_entity_t topic)
|
static void print_dcps_endpoint (FILE *fp, dds_entity_t pp, const char *type, dds_entity_t topic)
|
||||||
{
|
{
|
||||||
dds_entity_t rd = dds_create_reader (pp, topic, NULL, NULL);
|
dds_entity_t rd = dds_create_reader (pp, topic, NULL, NULL);
|
||||||
(void)dds_reader_wait_for_historical_data (rd, DDS_SECS (5));
|
(void)dds_reader_wait_for_historical_data (rd, DDS_SECS (5));
|
||||||
|
@ -477,12 +477,12 @@ void print_dcps_endpoint (FILE *fp, dds_entity_t pp, const char *type, dds_entit
|
||||||
dds_delete (rd);
|
dds_delete (rd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_dcps_subscription (FILE *fp, dds_entity_t pp)
|
static void print_dcps_subscription (FILE *fp, dds_entity_t pp)
|
||||||
{
|
{
|
||||||
print_dcps_endpoint (fp, pp, "SUBSCRIPTION", DDS_BUILTIN_TOPIC_DCPSSUBSCRIPTION);
|
print_dcps_endpoint (fp, pp, "SUBSCRIPTION", DDS_BUILTIN_TOPIC_DCPSSUBSCRIPTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_dcps_publication (FILE *fp, dds_entity_t pp)
|
static void print_dcps_publication (FILE *fp, dds_entity_t pp)
|
||||||
{
|
{
|
||||||
print_dcps_endpoint (fp, pp, "PUBLICATION", DDS_BUILTIN_TOPIC_DCPSPUBLICATION);
|
print_dcps_endpoint (fp, pp, "PUBLICATION", DDS_BUILTIN_TOPIC_DCPSPUBLICATION);
|
||||||
}
|
}
|
||||||
|
@ -504,7 +504,7 @@ static struct topictab {
|
||||||
};
|
};
|
||||||
#define TOPICTAB_SIZE (sizeof(topictab)/sizeof(struct topictab))
|
#define TOPICTAB_SIZE (sizeof(topictab)/sizeof(struct topictab))
|
||||||
|
|
||||||
void usage (void)
|
static void usage (void)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Usage: ddsls [OPTIONS] TOPIC... for specified topics\n\n");
|
fprintf (stderr, "Usage: ddsls [OPTIONS] TOPIC... for specified topics\n\n");
|
||||||
fprintf (stderr, " or: ddsls [OPTIONS] -a for all topics\n");
|
fprintf (stderr, " or: ddsls [OPTIONS] -a for all topics\n");
|
||||||
|
|
|
@ -943,7 +943,7 @@ void setqos_from_args(dds_entity_kind_t qt, dds_qos_t *q, int n, const char *arg
|
||||||
|
|
||||||
#define DDS_ERR_MSG_MAX 128
|
#define DDS_ERR_MSG_MAX 128
|
||||||
|
|
||||||
void dds_fail (const char * msg, const char * where)
|
static void dds_fail (const char * msg, const char * where)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Aborting Failure: %s %s\n", where, msg);
|
fprintf (stderr, "Aborting Failure: %s %s\n", where, msg);
|
||||||
abort ();
|
abort ();
|
||||||
|
|
|
@ -106,9 +106,11 @@ void qos_ownership(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_transport_priority(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_transport_priority(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_reliability(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_reliability(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_resource_limits(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_resource_limits(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
|
void qos_durability_service(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_user_data(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_user_data(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_latency_budget(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_latency_budget(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_lifespan(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_lifespan(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
|
void qos_presentation(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void qos_autodispose_unregistered_instances(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
void qos_autodispose_unregistered_instances(dds_entity_kind_t qt, dds_qos_t *q, const char *arg);
|
||||||
void set_qosprovider(const char *arg);
|
void set_qosprovider(const char *arg);
|
||||||
void setqos_from_args(dds_entity_kind_t qt, dds_qos_t *q, int n, const char *args[]);
|
void setqos_from_args(dds_entity_kind_t qt, dds_qos_t *q, int n, const char *args[]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue