#include <managed_topic.h>
Public Member Functions | |
System::String^ | get_filter_expression () |
Get the filter_expression . | |
void | get_expression_parameters (StringSeq^ parameters) |
Get the expression_parameters . | |
void | set_expression_parameters (StringSeq^ parameters) |
Set the expression_parameters . | |
void | append_to_expression_parameter (System::Int32 index, System::String^ val) |
<<eXtension>> Appends a string term to the specified parameter string. | |
void | remove_from_expression_parameter (System::Int32 index, System::String^ val) |
<<eXtension>> Removes a string term from the specified parameter string. | |
Topic^ | get_related_topic () |
Get the related_topic . | |
virtual System::String^ | get_type_name () |
Get the associated type_name . | |
virtual System::String^ | get_name () |
Get the name used to create this DDS::TopicDescription . | |
virtual DomainParticipant^ | get_participant () |
Get the DDS::DomainParticipant to which the DDS::TopicDescription belongs. | |
Static Public Member Functions | |
static ContentFilteredTopic^ | narrow (ITopicDescription^ topic_description) |
Narrow the given DDS::TopicDescription pointer to a DDS::ContentFilteredTopic pointer. |
It describes a more sophisticated subscription that indicates a DDS::DataReader does not want to necessarily see all values of each instance published under the DDS::Topic. Rather, it wants to see only the values whose contents satisfy certain criteria. This class therefore can be used to request content-based subscriptions.
The selection of the content is done using the filter_expression
with parameters expression_parameters
.
filter_expression
attribute is a string that specifies the criteria to select the data samples of interest. It is similar to the WHERE part of an SQL clause. expression_parameters
attribute is a sequence of strings that give values to the 'parameters' (i.e. "%n" tokens) in the filter_expression
. The number of supplied parameters must fit with the requested values in the filter_expression
(i.e. the number of n tokens). filter_expression
and expression_parameters
. Note on Content-Based Filtering and Sparse Value Types
If you are a user of the Dynamic Data API, you may define sparse value types; that is, types for which every data sample need not include a value for every field defined in the type. (See DDS::TCKind::TK_SPARSE and DDS::TypeCodeFactory::create_sparse_tc.) In order for a filter expression on a field to be well defined, that field must be present in the data sample. That means that you will only be able to perform a content-based filter on fields that are marked as DDS::TypeCode::KEY_MEMBER or DDS::TypeCode::NONKEY_REQUIRED_MEMBER.
static ContentFilteredTopic ^ DDS::ContentFilteredTopic::narrow | ( | ITopicDescription^ | topic_description | ) | [static] |
Narrow the given DDS::TopicDescription pointer to a DDS::ContentFilteredTopic pointer.
System::String ^ DDS::ContentFilteredTopic::get_filter_expression | ( | ) |
Get the filter_expression
.
Return the filter_expression
associated with the DDS::ContentFilteredTopic.
filter_expression
. void DDS::ContentFilteredTopic::get_expression_parameters | ( | StringSeq^ | parameters | ) |
Get the expression_parameters
.
Return the expression_parameters
associated with the DDS::ContentFilteredTopic. expression_parameters
is either specified on the last successful call to DDS::ContentFilteredTopic::set_expression_parameters or, if that method is never called, the parameters specified when the DDS::ContentFilteredTopic was created.
parameters | <<inout>> the filter expression parameters. Cannot be NULL. |
One | of the Standard Return Codes |
void DDS::ContentFilteredTopic::set_expression_parameters | ( | StringSeq^ | parameters | ) |
Set the expression_parameters
.
Change the expression_parameters
associated with the DDS::ContentFilteredTopic.
parameters | <<in>> the filter expression parameters Cannot be NULL.. Length of sequence cannot be greater than 100. |
One | of the Standard Return Codes |
void DDS::ContentFilteredTopic::append_to_expression_parameter | ( | System::Int32 | index, | |
System::String^ | val | |||
) |
<<eXtension>> Appends a string term to the specified parameter string.
Appends the input string to the end of the specified parameter string, separated by a comma. If the original parameter string is enclosed in quotation marks (''), the resultant string will also be enclosed in quotation marks.
This method can be used in expression parameters associated with MATCH operators in order to add a pattern to the match pattern list. For example, if the filter expression parameter value is:
'IBM'
Then append_to_expression_parameter(0, "MSFT") would generate the new value:
'IBM,MSFT'
index | <<in>> The index of the parameter string to be modified. The first index is index 0. When using the DDS::DomainParticipant::STRINGMATCHFILTER_NAME filter, index must be 0. | |
val | <<in>> The string term to be appended to the parameter string. |
One | of the Standard Return Codes |
void DDS::ContentFilteredTopic::remove_from_expression_parameter | ( | System::Int32 | index, | |
System::String^ | val | |||
) |
<<eXtension>> Removes a string term from the specified parameter string.
Removes the input string from the specified parameter string. To be found and removed, the input string must exist as a complete term, bounded by comma separators or the strong boundary. If the original parameter string is enclosed in quotation marks (''), the resultant string will also be enclosed in quotation marks. If the removed term was the last entry in the string, the result will be a string of empty quotation marks.
This method can be used in expression parameters associated with MATCH operators in order to remove a pattern from the match pattern list. For example, if the filter expression paremeter value is:
'IBM,MSFT'
Then remove_from_expression_parameter(0, "IBM") would generate the expression:
'MSFT'
index | <<in>> The index of the parameter string to be modified. The first index is index 0. When using the DDS::DomainParticipant::STRINGMATCHFILTER_NAME filter, index must be 0. | |
val | <<in>> The string term to be removed from the parameter string. |
One | of the Standard Return Codes |
Topic ^ DDS::ContentFilteredTopic::get_related_topic | ( | ) |
Get the related_topic
.
Return the DDS::Topic specified when the DDS::ContentFilteredTopic was created.
virtual System::String ^ DDS::ContentFilteredTopic::get_type_name | ( | ) | [virtual] |
Get the associated type_name
.
The type name defines a locally unique type for the publication or the subscription.
The type_name
corresponds to a unique string used to register a type via the FooTypeSupport::register_type method.
Thus, the type_name
implies an association with a corresponding DDS::TypeSupport and this DDS::TopicDescription.
Implements DDS::ITopicDescription.
virtual System::String ^ DDS::ContentFilteredTopic::get_name | ( | ) | [virtual] |
Get the name used to create this DDS::TopicDescription .
Implements DDS::ITopicDescription.
virtual DomainParticipant ^ DDS::ContentFilteredTopic::get_participant | ( | ) | [virtual] |
Get the DDS::DomainParticipant to which the DDS::TopicDescription belongs.
Implements DDS::ITopicDescription.