/* * 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_beReaderService_h #define commend_beReaderService_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 netio_common_h #include "netio/netio_common.h" #endif #ifndef mig_rtps_h #include "mig/mig_rtps.h" #endif #ifndef commend_dll_h #include "commend/commend_dll.h" #endif #ifndef commend_readerService_h #include "commend/commend_readerService.h" #endif #ifdef __cplusplus extern "C" { #endif /* Doxygen file-level documentation =====================================*/ /*e \file \brief COMMENDBeReaderService *interface*--as in no implementation. */ /*e \defgroup COMMENDBeReaderServiceModule COMMENDBeReaderService * \ingroup COMMENDReaderServiceModule */ struct REDADatabase; struct COMMENDFacade; struct COMMENDBeReaderService; /*e \ingroup COMMENDBeReaderServiceModule * * Create a new best effort reader service. * * @pre Parameters are valid, non-NULL pointers (except for \e property, which * can be a NULL pointer). * @post A new reader service is created. * * @param db \b In. Pointer to the database the reader service will use. * @param facade \b In. Pointer to the facade the reader service will use. * @param property \b In. Pointer to the desired reader service properties. * If NULL, use the default properties. * @param ea \b In. Pointer to the exclusive area the reader service will use. * @param worker \b In. Pointer to a worker that will create the reader service. * * @return A valid COMMENDBeReaderService pointer upon success, else NULL. * * @see COMMENDBeReaderService_delete */ extern COMMENDDllExport struct COMMENDBeReaderService * COMMENDBeReaderService_new( struct REDADatabase *db, struct COMMENDFacade *facade, const struct COMMENDReaderServiceProperty *property, struct REDAExclusiveArea *ea, struct REDAWorker *worker); /*e \ingroup COMMENDBeReaderServiceModule * * Remote writer properties for best effort reader services. * * @see COMMEND_BE_READER_SERVICE_REMOTE_WRITER_PROPERTY_DEFAULT */ struct COMMENDBeReaderServiceRemoteWriterProperty { struct RTINetioLocator sessionLocatorList[COMMEND_COMMON_APP_IPADDRESS_COUNT_MAX]; RTI_INT32 sessionLocatorCount; }; /*e \ingroup COMMENDBeReaderServiceModule * * Default remote writer properties for best effort reader service. * * @see COMMENDBeReaderServiceRemoteWriterProperty */ #define COMMEND_BE_READER_SERVICE_REMOTE_WRITER_PROPERTY_DEFAULT \ { \ RTI_NETIO_RTPS_LOCATOR_LIST_DEFAULT, /* sessionLocatorsList */ \ 0, /* sessionLocatorsList */ \ } #ifdef __cplusplus } /* extern "C" */ #endif #endif /* commend_beReaderService_h */