11#ifndef routingservice_processor_h
12#define routingservice_processor_h
15#include "routingservice/routingservice_adapter_new.h"
36struct RTI_RoutingServiceRouteImpl;
38typedef struct RTI_RoutingServiceRouteImpl RTI_RoutingServiceRoute;
59#define RTI_RoutingServiceLoanedSamples_INITIALIZER {\
65struct RTI_RoutingServiceInputImpl;
67typedef struct RTI_RoutingServiceInputImpl RTI_RoutingServiceInput;
107extern ROUTERDllExport
131extern ROUTERDllExport
133 RTI_RoutingServiceInput *self,
159extern ROUTERDllExport
161 RTI_RoutingServiceInput *self,
163 const struct RTI_RoutingServiceSelectorState *selector);
184extern ROUTERDllExport
186 RTI_RoutingServiceInput *self,
214extern ROUTERDllExport
216 RTI_RoutingServiceInput *self,
218 const struct RTI_RoutingServiceSelectorState *selector);
239extern ROUTERDllExport
241 RTI_RoutingServiceInput *self,
270extern ROUTERDllExport
271RTI_RoutingServiceSelectorStateQueryData
273 RTI_RoutingServiceInput *self,
274 RTI_RoutingServiceSelectorStateQueryData old_query_data,
275 const struct RTI_RoutingServiceSelectorContent *content);
289extern ROUTERDllExport
291 RTI_RoutingServiceInput *self,
292 RTI_RoutingServiceSelectorStateQueryData query_data);
298struct RTI_RoutingServiceOutputImpl;
300typedef struct RTI_RoutingServiceOutputImpl RTI_RoutingServiceOutput;
312extern ROUTERDllExport
328extern ROUTERDllExport
347extern ROUTERDllExport
349 RTI_RoutingServiceOutput *self,
368extern ROUTERDllExport
370 RTI_RoutingServiceOutput *self,
383extern ROUTERDllExport
402extern ROUTERDllExport
404 RTI_RoutingServiceRoute *self,
420extern ROUTERDllExport
422 RTI_RoutingServiceRoute *self,
441extern ROUTERDllExport
443 RTI_RoutingServiceRoute *self,
444 const char *input_name);
451extern ROUTERDllExport
470extern ROUTERDllExport
472 RTI_RoutingServiceRoute *self,
488extern ROUTERDllExport
490 RTI_RoutingServiceRoute *self,
509extern ROUTERDllExport
511 RTI_RoutingServiceRoute *self,
512 const char * output_name);
519extern ROUTERDllExport
529extern ROUTERDllExport
531 RTI_RoutingServiceRoute *self,
532 struct DDS_Duration_t *period);
551extern ROUTERDllExport
553 RTI_RoutingServiceRoute *self,
554 const struct DDS_Duration_t *period);
564extern ROUTERDllExport
566 RTI_RoutingServiceRoute *self);
575extern ROUTERDllExport
577 RTI_RoutingServiceRoute *self,
578 RTI_RoutingServiceInput *prev_input);
587extern ROUTERDllExport
589 RTI_RoutingServiceRoute *self);
598extern ROUTERDllExport
600 RTI_RoutingServiceRoute *self,
601 RTI_RoutingServiceOutput *prev_output);
609extern ROUTERDllExport
611 RTI_RoutingServiceRoute *self);
624 RTI_ROUTING_SERVICE_ROUTE_EVENT_NONE = 0,
625 RTI_ROUTING_SERVICE_ROUTE_EVENT_INPUT_ENABLED,
626 RTI_ROUTING_SERVICE_ROUTE_EVENT_INPUT_DISABLED,
627 RTI_ROUTING_SERVICE_ROUTE_EVENT_OUTPUT_ENABLED,
628 RTI_ROUTING_SERVICE_ROUTE_EVENT_OUTPUT_DISABLED,
629 RTI_ROUTING_SERVICE_ROUTE_EVENT_ROUTE_STARTED,
630 RTI_ROUTING_SERVICE_ROUTE_EVENT_ROUTE_STOPPED,
631 RTI_ROUTING_SERVICE_ROUTE_EVENT_ROUTE_RUNNING,
632 RTI_ROUTING_SERVICE_ROUTE_EVENT_ROUTE_PAUSED,
633 RTI_ROUTING_SERVICE_ROUTE_EVENT_DATA_ON_INPUTS,
634 RTI_ROUTING_SERVICE_ROUTE_EVENT_PERIODIC_ACTION,
635 RTI_ROUTING_SERVICE_ROUTE_EVENT_OUTPUT_STREAM_REQUEST,
636 RTI_ROUTING_SERVICE_ROUTE_EVENT_WAKEUP,
637 RTI_RoutingServiceRouteEventKind_COUNT,
638 RTI_ROUTING_SERVICE_ROUTE_EVENT_ALL = 0xffffffff,
646struct RTI_RoutingServiceRouteEventImpl;
653typedef struct RTI_RoutingServiceRouteEventImpl RTI_RoutingServiceRouteEvent;
664extern ROUTERDllExport
666 RTI_RoutingServiceRouteEvent *self);
676extern ROUTERDllExport
678 RTI_RoutingServiceRouteEvent *self);
691extern ROUTERDllExport
693 RTI_RoutingServiceRouteEvent *self);
706extern ROUTERDllExport
708 RTI_RoutingServiceRouteEvent *self);
731 RTI_RoutingServiceRouteEvent * route_event,
794(*RTI_RoutingServiceProcessorPlugin_CreateFcn)(
831(*RTI_RoutingServiceProcessorPlugin_CreateProcessorFcn)(
832 void * processor_plugin_data,
833 RTI_RoutingServiceRoute * route,
850typedef void (*RTI_RoutingServiceProcessorPlugin_DeleteProcessorFcn)(
851 void * processor_plugin_data,
853 RTI_RoutingServiceRoute * route,
894#define RTI_ROUTING_SERVICE_PROCESSOR_PLUGIN_INIT_NUMBER (8765432)
907#define RTI_RoutingServiceProcessorPlugin_initialize(plugin) \
909 struct RTI_RoutingServiceVersion rsVersion = RTI_ROUTING_SERVICE_VERSION; \
910 struct RTI_RoutingServiceVersion processorVersion = {0,0,0,0}; \
911 (plugin)->_init = RTI_ROUTING_SERVICE_PROCESSOR_PLUGIN_INIT_NUMBER; \
912 (plugin)->_rs_version = rsVersion; \
913 (plugin)->plugin_version = processorVersion; \
914 (plugin)->plugin_delete = 0; \
915 (plugin)->create_processor = 0; \
916 (plugin)->delete_processor = 0; \
917 (plugin)->processor_plugin_data = 0; \
struct RTI_RoutingServiceEnvironmentImpl RTI_RoutingServiceEnvironment
The environment permits the return of error information in the RTI Routing Service API and informatio...
Definition: routingservice_infrastructure.h:183
void * RTI_RoutingServiceSample
Stream sample.
Definition: routingservice_infrastructure.h:482
void * RTI_RoutingServiceSampleInfo
Stream sample info. In DDS, this is a DDS_SampleInfo object.
Definition: routingservice_infrastructure.h:489
void RTI_RoutingServiceRoute_get_period(RTI_RoutingServiceRoute *self, struct DDS_Duration_t *period)
Get the current period of the periodic event for this Route.
DDS_Boolean RTI_RoutingServiceRoute_is_input_enabled(RTI_RoutingServiceRoute *self, int index)
Checks whether the Input with the specified index is enabled.
RTI_RoutingServiceInput * RTI_RoutingServiceRoute_get_input_at(RTI_RoutingServiceRoute *self, int index)
Returns the Input at the specified index.
const char * RTI_RoutingServiceInput_get_name(RTI_RoutingServiceInput *self)
Returns the name of the specified input.
DDS_Boolean RTI_RoutingServiceInput_is_active(RTI_RoutingServiceInput *self)
Checks whether an Input is active.
RTI_RoutingServiceOutput * RTI_RoutingServiceRoute_lookup_output_by_name(RTI_RoutingServiceRoute *self, const char *output_name)
Looks up the specified Output by its configuration name.
RTI_RoutingServiceInput * RTI_RoutingServiceRoute_get_first_input(RTI_RoutingServiceRoute *self)
Returns the first enabled Input in this route.
RTI_RoutingServiceSelectorStateQueryData RTI_RoutingServiceInput_create_content_query(RTI_RoutingServiceInput *self, RTI_RoutingServiceSelectorStateQueryData old_query_data, const struct RTI_RoutingServiceSelectorContent *content)
Creates a query object that selects the data with the specified filter.
RTI_RoutingServiceOutput * RTI_RoutingServiceRoute_get_next_output(RTI_RoutingServiceRoute *self, RTI_RoutingServiceOutput *prev_output)
Returns the next enabled Output sibling to the specified output.
const struct RTI_RoutingServiceStreamInfo * RTI_RoutingServiceInput_get_stream_info(RTI_RoutingServiceInput *self)
RTI_RoutingServiceInput * RTI_RoutingServiceRoute_lookup_input_by_name(RTI_RoutingServiceRoute *self, const char *input_name)
Looks up the specified Input by its configuration name.
void * RTI_RoutingServiceRouteEvent_get_affected_entity(RTI_RoutingServiceRouteEvent *self)
Returns the entity that is directly affected by the event.
RTI_RoutingServiceRoute * RTI_RoutingServiceRouteEvent_get_route(RTI_RoutingServiceRouteEvent *self)
Returns the Route that triggered the event.
RTI_RoutingServiceOutput * RTI_RoutingServiceRoute_get_first_output(RTI_RoutingServiceRoute *self)
Returns the first enabled output in this route.
DDS_Boolean RTI_RoutingServiceInput_read(RTI_RoutingServiceInput *self, struct RTI_RoutingServiceLoanedSamples *loaned_samples)
Reads all the available samples in this Input into the specified loaned samples instance.
RTI_RoutingServiceRouteEventKind RTI_RoutingServiceRouteEvent_get_kind(RTI_RoutingServiceRouteEvent *self)
Returns the kind of this RouteEvent.
void(* RTI_RoutingServiceProcessor_OnRouteEventFcn)(void *processor_data, RTI_RoutingServiceRouteEvent *route_event, RTI_RoutingServiceEnvironment *env)
Prototype of the function that processes an event that occurred in the Route where the Processor is i...
Definition: routingservice_processor.h:729
int RTI_RoutingServiceRoute_get_output_count(RTI_RoutingServiceRoute *self)
Returns the number of outputs associated with this Route.
const char * RTI_RoutingServiceOutput_get_name(RTI_RoutingServiceOutput *self)
Returns the name of the specified output.
DDS_Boolean RTI_RoutingServiceInput_delete_content_query(RTI_RoutingServiceInput *self, RTI_RoutingServiceSelectorStateQueryData query_data)
Deletes a content query created from this Input.
DDS_Boolean RTI_RoutingServiceInput_take_w_selector(RTI_RoutingServiceInput *self, struct RTI_RoutingServiceLoanedSamples *loaned_samples, const struct RTI_RoutingServiceSelectorState *selector)
Takes all the available samples in this Input into the specified loaned samples instance,...
void RTI_RoutingServiceRoute_wakeup_route(RTI_RoutingServiceRoute *route)
Sends a wakeup event to the specified Route. This operation can be safely called from any thread cont...
void * RTI_RoutingServiceRouteEvent_get_event_data(RTI_RoutingServiceRouteEvent *self)
Returns the data associated with the event.
DDS_Boolean RTI_RoutingServiceOutput_write(RTI_RoutingServiceOutput *self, const RTI_RoutingServiceSample *sample_array, const RTI_RoutingServiceSampleInfo *sample_info_array, int *array_length)
Writes a list of data and information samples.
const char * RTI_RoutingServiceRoute_get_full_name(RTI_RoutingServiceRoute *self)
Returns the fully-qualified name of this Route, derived from the XML configuration.
DDS_Boolean RTI_RoutingServiceInput_take(RTI_RoutingServiceInput *self, struct RTI_RoutingServiceLoanedSamples *loaned_samples)
Takes all the available samples in this Input into the specified loaned samples instance.
RTI_RoutingServiceInput * RTI_RoutingServiceRoute_get_next_input(RTI_RoutingServiceRoute *self, RTI_RoutingServiceInput *prev_input)
Returns the next enabled Input sibling to the specified input.
DDS_Boolean RTI_RoutingServiceRoute_is_output_enabled(RTI_RoutingServiceRoute *self, int index)
Checks whether the Output at the specified index is enabled.
void(* RTI_RoutingServiceProcessorPlugin_DeleteFcn)(struct RTI_RoutingServiceProcessorPlugin *plugin, RTI_RoutingServiceEnvironment *env)
Prototype of the function that deletes a ProcessorPlugin.
Definition: routingservice_processor.h:807
DDS_Boolean RTI_RoutingServiceOutput_write_sample(RTI_RoutingServiceOutput *self, const RTI_RoutingServiceSample data, const RTI_RoutingServiceSampleInfo info)
Writes a single sample, optionally with metatada indicated by an info sample.
DDS_Boolean RTI_RoutingServiceInput_read_w_selector(RTI_RoutingServiceInput *self, struct RTI_RoutingServiceLoanedSamples *loaned_samples, const struct RTI_RoutingServiceSelectorState *selector)
Reads all the available samples in this Input into the specified loaned samples instance,...
const struct RTI_RoutingServiceStreamInfo * RTI_RoutingServiceOutput_get_stream_info(RTI_RoutingServiceOutput *self)
Returns the type information associated with the specified Output. The type information refers to the...
DDS_Boolean RTI_RoutingServiceInput_return_loan(RTI_RoutingServiceInput *self, struct RTI_RoutingServiceLoanedSamples *loaned_samples)
Returns a loan on the read or taken samples.
void RTI_RoutingServiceRoute_set_period(RTI_RoutingServiceRoute *self, const struct DDS_Duration_t *period)
Changes the periodic event period for this route.
RTI_RoutingServiceOutput * RTI_RoutingServiceRoute_get_output_at(RTI_RoutingServiceRoute *self, int index)
Returns the Output at the specified index.
void(* RTI_RoutingServiceProcessor_UpdateFcn)(void *processor_data, const struct RTI_RoutingServiceProperties *properties, RTI_RoutingServiceEnvironment *env)
Prototype of the function that updates a Processor configuration.
Definition: routingservice_processor.h:744
struct RTI_RoutingServiceProcessor *(* RTI_RoutingServiceProcessorPlugin_CreateProcessorFcn)(void *processor_plugin_data, RTI_RoutingServiceRoute *route, const struct RTI_RoutingServiceProperties *properties, RTI_RoutingServiceEnvironment *env)
Prototype of the function that creates a route Processor.
Definition: routingservice_processor.h:831
RTI_RoutingServiceRouteEventKind
Representation of the different event kinds triggered for a Route.
Definition: routingservice_processor.h:622
int RTI_RoutingServiceRoute_get_input_count(RTI_RoutingServiceRoute *self)
Returns the number of inputs associated with this Route.
RTI Routing Service Infrastructure.
A pair of sample and sample info arrays. They are assumed to be of the same length.
Definition: routingservice_processor.h:53
ProcessorPlugin class.
Definition: routingservice_processor.h:863
RTI_RoutingServiceProcessorPlugin_DeleteProcessorFcn delete_processor
Handles the deletion of Processors.
Definition: routingservice_processor.h:885
RTI_RoutingServiceProcessorPlugin_CreateProcessorFcn create_processor
Handles the creation of Processors.
Definition: routingservice_processor.h:880
void * processor_plugin_data
A placeholder for Processor implementors to keep a pointer to data that may be needed by the implemen...
Definition: routingservice_processor.h:891
struct RTI_RoutingServiceVersion plugin_version
The version of this ProcessorPlugin.
Definition: routingservice_processor.h:870
RTI_RoutingServiceProcessorPlugin_DeleteFcn plugin_delete
Handles the deletion of the ProcessorPlugin.
Definition: routingservice_processor.h:875
Main Processor class.
Definition: routingservice_processor.h:759
RTI_RoutingServiceProcessor_OnRouteEventFcn on_route_event
Handles event processing (required).
Definition: routingservice_processor.h:762
RTI_RoutingServiceProcessor_UpdateFcn update
Handles configuration changes in a Processor (optional).
Definition: routingservice_processor.h:765
void * processor_data
Implementation data. Provided by implementors, and passed back in API calls.
Definition: routingservice_processor.h:771
Set of configuration properties.
Definition: routingservice_infrastructure.h:77
struct RTI_RoutingServiceNameValue * properties
Array of configuration properties.
Definition: routingservice_infrastructure.h:79
Stream information.
Definition: routingservice_infrastructure.h:521
Represents the version of a plugin or RTI Routing Service itself.
Definition: routingservice_infrastructure.h:190