1 #ifndef ApplicationSupport_h
2 #define ApplicationSupport_h
5 #include "netio/netio_udp.h"
6 #include "disc_dpde/disc_dpde_discovery_plugin.h"
15 #define snprintf sprintf_s
23 #define APP_RETVAL_OK 0
28 #define APP_RETVAL_ERROR -1
33 #define APP_COUNT_UNLIMITED -1
36 typedef struct Application Application_t;
41 typedef int (*Application_take_data_fn)(Application_t *application);
53 typedef struct ApplicationConfig {
142 DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE entity_id_writer;
153 DDS_BUILTIN_TOPIC_KEY_TYPE_NATIVE entity_id_reader;
178 DDS_Char topic_name[RTPS_PATHNAME_LEN_MAX+1];
191 DDS_Char type_name[RTPS_PATHNAME_LEN_MAX+1];
313 Application_take_data_fn take_data;
330 } ApplicationConfig_t;
335 #define DEFAULT_DOMAIN_ID 0
340 #define DEFAULT_ENTITY_ID_WRITER 100
345 #define DEFAULT_ENTITY_ID_READER 200
350 #define DEFAULT_PART_NAME_WRITER "HelloWorldPublisher"
355 #define DEFAULT_PART_NAME_READER "HelloWorldSubscriber"
360 #define DEFAULT_TOPIC_NAME "HelloWorldTopic"
366 #define DEFAULT_PEER "127.0.0.1"
371 #define DEFAULT_LOG_VERBOSITY OSAPI_LOG_VERBOSITY_ERROR
373 #if defined(RTI_DARWIN)
377 #define DEFAULT_UDP_INTERFACE "en1"
378 #elif defined (RTI_LINUX)
379 #define DEFAULT_UDP_INTERFACE "eth0"
380 #elif defined (RTI_VXWORKS)
381 #define DEFAULT_UDP_INTERFACE "geisc0"
382 #elif defined(RTI_WIN32)
383 #define DEFAULT_UDP_INTERFACE "Local Area Connection"
385 #define DEFAULT_UDP_INTERFACE "ce0"
388 #if defined(RTI_DARWIN)
392 #define DEFAULT_LOOP_INTERFACE "lo0"
393 #elif defined (RTI_LINUX)
394 #define DEFAULT_LOOP_INTERFACE "lo"
395 #elif defined (RTI_VXWORKS)
396 #define DEFAULT_LOOP_INTERFACE "lo0"
397 #elif defined(RTI_WIN32)
398 #define DEFAULT_LOOP_INTERFACE "Loopback Pseudo-Interface 1"
400 #define DEFAULT_LOOP_INTERFACE "lo0"
406 #define DEFAULT_SLEEP_SEC 1
412 #define DEFAULT_RUN_WINDOW_SEC (24 * 60 * 60)
418 #define ApplicationConfig_INITIALIZER \
429 DEFAULT_ENTITY_ID_WRITER,\
430 DEFAULT_ENTITY_ID_READER,\
431 DEFAULT_PART_NAME_WRITER,\
432 DEFAULT_PART_NAME_READER,\
435 DEFAULT_LOOP_INTERFACE,\
436 DEFAULT_UDP_INTERFACE,\
439 APP_COUNT_UNLIMITED,\
440 DEFAULT_RUN_WINDOW_SEC, \
441 DDS_DomainParticipantFactoryQos_INITIALIZER,\
442 DDS_DomainParticipantQos_INITIALIZER,\
443 DDS_DataReaderQos_INITIALIZER,\
444 DDS_DataWriterQos_INITIALIZER,\
445 DDS_DataReaderListener_INITIALIZER,\
446 DDS_DataWriterListener_INITIALIZER,\
447 DDS_STATUS_MASK_NONE,\
448 DDS_STATUS_MASK_NONE,\
449 DDS_STATUS_MASK_NONE,\
452 DEFAULT_LOG_VERBOSITY,\
460 ApplicationConfig_initialize(ApplicationConfig_t *config);
467 ApplicationConfig_finalize(ApplicationConfig_t *config);
474 ApplicationConfig_parse_arguments(
475 ApplicationConfig_t *config,
int argc,
char** argv);
482 ApplicationConfig_print(ApplicationConfig_t *config);
492 typedef struct Application {
496 ApplicationConfig_t config;
569 RTI_BOOL publication_matched_called;
577 extern Application_t*
578 Application_create(ApplicationConfig_t *config);
585 Application_delete(Application_t *application);
591 Application_enable(Application_t *application);
597 Application_wait_for_data(Application_t *application);
603 Application_help(
char *appname);
609 Application_ListenerHelper_on_data_available(
617 Application_ListenerHelper_on_subscription_matched(
627 Application_ListenerHelper_on_publication_matched(