/* * Copyright (c) 2025 Real-Time Innovations, Inc. All rights reserved. * No duplications, whole or partial, manual or electronic, may be made * without express written permission. Any such copies, or revisions thereof, * must display this notice unaltered. * This code contains trade secrets of Real-Time Innovations, Inc. */ #ifndef commend_anonWriterService_h #define commend_anonWriterService_h #ifndef reda_worker_h #include "reda/reda_worker.h" #endif #ifndef reda_weakReference_h #include "reda/reda_weakReference.h" #endif #ifndef reda_database_h #include "reda/reda_database.h" #endif #ifndef mig_rtps_h #include "mig/mig_rtps.h" #endif #ifndef commend_dll_h #include "commend/commend_dll.h" #endif #ifndef commend_writerService_h #include "commend/commend_writerService.h" #endif #ifdef __cplusplus extern "C" { #endif /* Doxygen file & module documentation ==================================*/ /*e \file \brief COMMENDAnonWriterService *interface*--as in no implementation. */ /*e \defgroup COMMENDAnonWriterServiceModule COMMENDAnonWriterService * \ingroup COMMENDWriterServiceModule * * @brief This submodule defines strict reliable writer services. * * Detailed description of strict reliable writer services. */ /*e \defgroup COMMENDAnonWriterServiceWriterActivityListenerModule * COMMENDAnonWriterServiceWriterActivityListener \ingroup * COMMENDWriterServiceWriterActivityListenerModule */ /*e \defgroup COMMENDAnonWriterServiceWriterSampleListenerModule * COMMENDAnonWriterServiceWriterSampleListener \ingroup * COMMENDWriterServiceWriterSampleListenerModule */ struct RTIClock; struct REDADatabase; struct COMMENDAnonWriterServiceWriterProperty { /*e Parent property */ struct COMMENDWriterServiceWriterProperty parent; /*e Type of writer: sends broadcasts */ RTIBool isBroadcaster; /*e The rate to send periodic heartbeat. If ZERO, the writer is an ANNOUNCER */ struct RTINtpTime heartbeatRate; /*e Max output user data size for one repair packet (in bytes) */ int outputLoadMax; /* * The following parameters configure the behavior of the feature used * to announce a participant to the default domain 0. * * See CORE-5634 for additional details */ /* * The rate at which a participant is announced to the default domain. * If ZERO, the participant is not announced periodically. */ struct RTINtpTime domainBroadcastRate; /* Locator in which a participant is announced to the default domain */ struct RTINetioLocator domainBroadcastLocator; }; #define COMMEND_ANON_WRITER_SERVICE_WRITER_PROPERTY_DEFAULT \ { \ COMMEND_WRITER_SERVICE_WRITER_PROPERTY_DEFAULT, /* parent */ \ RTI_TRUE, /* isBroadcaster */ \ { 30, 0 }, /* heartbeatRate 30 sec*/ \ 5000, { 0, 0 }, /* domainBroadcastRate */ \ RTI_NETIO_LOCATOR_INVALID \ } extern COMMENDDllExport struct COMMENDAnonWriterService * COMMENDAnonWriterService_new( struct REDADatabase *db, struct COMMENDFacade *facade, struct COMMENDWriterServiceProperty *property, struct REDAExclusiveArea *ea, struct REDAWorker *worker); /*i * \ingroup COMMENDAnonWriterServiceModule * * @brief Get the number of destinations that the anonymous writer will write * to on a call to send() using the writer's destination * group. * * @param me Pointer to service * @param writerOid OID of the local anon writer. Needed to find in table. * @param worker Pointer to worker * * @return Number of destinations, -1 if error. */ extern COMMENDDllExport RTI_INT32 COMMENDAnonWriterService_getDestinationCount( struct COMMENDWriterService *me, MIGRtpsObjectId writerOid, struct REDAWorker *worker); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* commend_anonWriterService_h */