10 #ifndef OPENDDS_NO_MULTI_TOPIC 27 TypeSupport_ptr findTypeSupport(DomainParticipantImpl* participant,
28 const char* type_name)
32 throw std::runtime_error(
OPENDDS_STRING(
"Data type: ") + type_name +
33 " is not registered.");
40 const char* type_name,
const char* subscription_expression,
44 findTypeSupport(participant, type_name),
46 , subscription_expression_(subscription_expression)
47 , expression_parameters_(expression_parameters)
49 const char* out = subscription_expression
50 + std::strlen(subscription_expression);
51 yard::SimpleTextParser parser(subscription_expression, out);
56 for (
AstNode* iter = parser.GetAstRoot()->GetFirstChild(); iter;
57 iter = iter->GetSibling()) {
59 AstNode* fieldName = iter->GetFirstChild();
103 #endif // OPENDDS_NO_MULTI_TOPIC Implements the OpenDDS::DCPS::DomainParticipant interfaces.
yard::TreeBuildingParser< char >::Node AstNode
unique_ptr< FilterEvaluator > filter_eval_
DDS::ReturnCode_t set_expression_parameters(const DDS::StringSeq ¶meters)
ACE_Recursive_Thread_Mutex lock_
Concurrent access to expression_parameters_.
DDS::StringSeq expression_parameters_
MultiTopicImpl(const char *name, const char *type_name, const char *subscription_expression, const DDS::StringSeq &expression_parameters, DomainParticipantImpl *participant)
virtual ~MultiTopicImpl()
std::vector< SubjectFieldSpec > aggregation_
OPENDDS_STRING toString(yard::TreeBuildingParser< char >::Node *iter)
OPENDDS_STRING subscription_expression_
char * string_dup(const char *)
#define Registered_Data_Types
std::vector< OPENDDS_STRING > selection_
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
const ReturnCode_t RETCODE_OUT_OF_RESOURCES
DDS::ReturnCode_t get_expression_parameters(DDS::StringSeq ¶meters)
void reportErrors(yard::SimpleTextParser &parser, const char *input)
called after parsing has failed, throws std::exception with details
Implements the DDS::TopicDescription interface.
char * get_subscription_expression()
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
const ReturnCode_t RETCODE_OK
The Internal API and Implementation of OpenDDS.
sequence< string > StringSeq