/*
*
*
* Distributed under the Apache License.
* See: https://github.com/frehberg/rtps-gen/blob/master/LICENSE
*/
#ifndef DDS_DCPS_TOPIC_IDL
#define DDS_DCPS_TOPIC_IDL
#include "dds/DdsDcpsInfrastructure.idl"
#pragma ciao lem "dds/DdsDcpsTopicE.idl"
module DDS {
local interface DomainParticipant;
local interface Topic;
// ----------------------------------------------------------------------
local interface TopicDescription {
string get_type_name();
string get_name();
DomainParticipant get_participant();
};
local interface TopicListener : Listener {
void on_inconsistent_topic(
in Topic the_topic,
in InconsistentTopicStatus status);
};
local interface Topic : Entity, TopicDescription {
ReturnCode_t set_qos(in TopicQos qos);
ReturnCode_t get_qos(inout TopicQos qos);
ReturnCode_t set_listener(
in TopicListener a_listener,
in StatusMask mask);
TopicListener get_listener();
// Access the status
ReturnCode_t get_inconsistent_topic_status(
inout InconsistentTopicStatus a_status);
};
#ifndef DDS_NO_CONTENT_FILTERED_TOPIC
local interface ContentFilteredTopic : TopicDescription {
string get_filter_expression();
ReturnCode_t get_expression_parameters(inout StringSeq params);
ReturnCode_t set_expression_parameters(
in StringSeq expression_parameters);
Topic get_related_topic();
};
#endif
#ifndef DDS_NO_MULTI_TOPIC
local interface MultiTopic : TopicDescription {
string get_subscription_expression();
ReturnCode_t get_expression_parameters(inout StringSeq params);
ReturnCode_t set_expression_parameters(
in StringSeq expression_parameters);
};
#endif
local interface TypeSupport {
ReturnCode_t register_type(
in DomainParticipant domain,
in string type_name);
string get_type_name ();
};
};
#endif /* DDS_DCPS_TOPIC_IDL */