Public Member Functions | |
virtual const char * | get_subscription_expression ()=0 |
Get the expression for this DDSMultiTopic. | |
virtual DDS_ReturnCode_t | get_expression_parameters (DDS_StringSeq ¶meters)=0 |
Get the expression parameters. | |
virtual DDS_ReturnCode_t | set_expression_parameters (const DDS_StringSeq ¶meters)=0 |
Set the expression_parameters . | |
Static Public Member Functions | |
static DDSMultiTopic * | narrow (DDSTopicDescription *topic_description) |
Narrow the given DDSTopicDescription pointer to a DDSMultiTopic pointer. |
DDSMultiTopic allows a more sophisticated subscription that can select and combine data received from multiple topics into a single resulting type (specified by the inherited type_name
). The data will then be filtered (selection) and possibly re-arranged (aggregation/projection) according to a subscription_expression
with parameters expression_parameters
.
subscription_expression
is a string that identifies the selection and re-arrangement of data from the associated topics. It is similar to an SQL statement where the SELECT part provides the fields to be kept, the FROM part provides the names of the topics that are searched for those fields, and the WHERE clause gives the content filter. The Topics combined may have different types but they are restricted in that the type of the fields used for the NATURAL JOIN operation must be the same. expression_parameters
attribute is a sequence of strings that give values to the 'parameters' (i.e. "%n" tokens) in the subscription_expression
. The number of supplied parameters must fit with the requested values in the subscription_expression
(i.e. the number of n tokens).
DDSDataReader entities associated with a DDSMultiTopic may access instances that are "constructed" at the DDSDataReader side from the instances written by multiple DDSDataWriter entities. The DDSMultiTopic access instance will begin to exist as soon as all the constituting DDSTopic instances are in existence. The view_state
and instance_state
is computed from the corresponding states of the constituting instances:
view_state
of the DDSMultiTopic instance is DDS_NEW_VIEW_STATE
if at least one of the constituting instances has view_state
= DDS_NEW_VIEW_STATE. Otherwise, it will be DDS_NOT_NEW_VIEW_STATE. instance_state
of the DDSMultiTopic instance is DDS_ALIVE_INSTANCE_STATE if the instance_state
of all the constituting DDSTopic instances is DDS_ALIVE_INSTANCE_STATE. It is DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE if at least one of the constituting DDSTopic instances is DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE. Otherwise, it is DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE. subscription_expression
and expression_parameters
. static DDSMultiTopic* DDSMultiTopic::narrow | ( | DDSTopicDescription * | topic_description | ) | [static] |
Narrow the given DDSTopicDescription pointer to a DDSMultiTopic pointer.
virtual const char* DDSMultiTopic::get_subscription_expression | ( | ) | [pure virtual] |
Get the expression for this DDSMultiTopic.
The expressions syntax is described in the DDS specification. It is specified when the DDSMultiTopic is created.
subscription_expression
of the DDSMultiTopic. virtual DDS_ReturnCode_t DDSMultiTopic::get_expression_parameters | ( | DDS_StringSeq & | parameters | ) | [pure virtual] |
Get the expression parameters.
The expressions syntax is described in the DDS specification.
The parameters
is either specified on the last successful call to DDSMultiTopic::set_expression_parameters, or if DDSMultiTopic::set_expression_parameters was never called, the parameters
specified when the DDSMultiTopic was created.
parameters | <<inout>> Fill in this sequence with the expression parameters. The memory for the strings in this sequence is managed according to the conventions described in Conventions. In particular, be careful to avoid a situation in which RTI Data Distribution Service allocates a string on your behalf and you then reuse that string in such a way that RTI Data Distribution Service believes it to have more memory allocated to it than it actually does. |
virtual DDS_ReturnCode_t DDSMultiTopic::set_expression_parameters | ( | const DDS_StringSeq & | parameters | ) | [pure virtual] |
Set the expression_parameters
.
Changes the expression_parameters
associated with the DDSMultiTopic.
parameters | <<in>> the filter expression parameters |