00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_TOPIC_IDL 00009 #define OPENDDS_DCPS_TOPIC_IDL 00010 00011 #include "dds/DdsDcpsInfrastructure.idl" 00012 00013 #pragma ciao lem "dds/DdsDcpsTopicE.idl" 00014 00015 module DDS { 00016 local interface DomainParticipant; 00017 local interface Topic; 00018 00019 // ---------------------------------------------------------------------- 00020 local interface TopicDescription { 00021 string get_type_name(); 00022 string get_name(); 00023 DomainParticipant get_participant(); 00024 }; 00025 00026 local interface TopicListener : Listener { 00027 void on_inconsistent_topic( 00028 in Topic the_topic, 00029 in InconsistentTopicStatus status); 00030 }; 00031 00032 local interface Topic : Entity, TopicDescription { 00033 ReturnCode_t set_qos( 00034 in TopicQos qos); 00035 ReturnCode_t get_qos( 00036 inout TopicQos qos); 00037 ReturnCode_t set_listener( 00038 in TopicListener a_listener, 00039 in StatusMask mask); 00040 TopicListener get_listener(); 00041 // Access the status 00042 ReturnCode_t get_inconsistent_topic_status( 00043 inout InconsistentTopicStatus a_status); 00044 }; 00045 00046 00047 #ifndef OPENDDS_NO_CONTENT_FILTERED_TOPIC 00048 00049 local interface ContentFilteredTopic : TopicDescription { 00050 string get_filter_expression(); 00051 ReturnCode_t get_expression_parameters(inout StringSeq params); 00052 ReturnCode_t set_expression_parameters( 00053 in StringSeq expression_parameters); 00054 Topic get_related_topic(); 00055 }; 00056 00057 #endif 00058 00059 #ifndef OPENDDS_NO_MULTI_TOPIC 00060 00061 local interface MultiTopic : TopicDescription { 00062 string get_subscription_expression(); 00063 ReturnCode_t get_expression_parameters(inout StringSeq params); 00064 ReturnCode_t set_expression_parameters( 00065 in StringSeq expression_parameters); 00066 }; 00067 00068 #endif 00069 00070 local interface TypeSupport { 00071 ReturnCode_t register_type( 00072 in DomainParticipant domain, 00073 in string type_name); 00074 00075 string get_type_name (); 00076 }; 00077 }; 00078 00079 #endif /* OPENDDS_DCPS_TOPIC_IDL */