00001
00002
00003
00004
00005
00006
00007
00008 #ifndef OPENDDS_DCPS_PUBLICATION_IDL
00009 #define OPENDDS_DCPS_PUBLICATION_IDL
00010
00011 #include "dds/DdsDcpsInfrastructure.idl"
00012
00013 #pragma ciao lem "dds/DdsDcpsPublicationE.idl"
00014
00015 module DDS {
00016 local interface Topic;
00017 local interface DomainParticipant;
00018 local interface DataWriter;
00019 local interface Publisher;
00020
00021 local interface DataWriterListener : Listener {
00022 void on_offered_deadline_missed(
00023 in DataWriter writer,
00024 in OfferedDeadlineMissedStatus status);
00025
00026 void on_offered_incompatible_qos(
00027 in DataWriter writer,
00028 in OfferedIncompatibleQosStatus status);
00029
00030 void on_liveliness_lost(
00031 in DataWriter writer,
00032 in LivelinessLostStatus status);
00033
00034 void on_publication_matched(
00035 in DataWriter writer,
00036 in PublicationMatchedStatus status);
00037 };
00038
00039 local interface PublisherListener : DataWriterListener {
00040 };
00041
00042
00043 local interface DataWriter : Entity {
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 ReturnCode_t set_qos(
00077 in DataWriterQos qos);
00078
00079 ReturnCode_t get_qos(inout DataWriterQos qos);
00080
00081 ReturnCode_t set_listener(
00082 in DataWriterListener a_listener,
00083 in StatusMask mask);
00084
00085 DataWriterListener get_listener();
00086
00087 Topic get_topic();
00088
00089 Publisher get_publisher();
00090
00091 ReturnCode_t wait_for_acknowledgments(in Duration_t max_wait);
00092
00093
00094 ReturnCode_t get_liveliness_lost_status(
00095 inout LivelinessLostStatus status);
00096 ReturnCode_t get_offered_deadline_missed_status(
00097 inout OfferedDeadlineMissedStatus status);
00098 ReturnCode_t get_offered_incompatible_qos_status(
00099 inout OfferedIncompatibleQosStatus status);
00100 ReturnCode_t get_publication_matched_status(
00101 inout PublicationMatchedStatus status);
00102
00103 ReturnCode_t assert_liveliness();
00104
00105 ReturnCode_t get_matched_subscriptions(
00106 inout InstanceHandleSeq subscription_handles);
00107
00108 #if !defined (DDS_HAS_MINIMUM_BIT)
00109 ReturnCode_t get_matched_subscription_data(
00110 inout SubscriptionBuiltinTopicData subscription_data,
00111 in InstanceHandle_t subscription_handle);
00112 #endif // !defined (DDS_HAS_MINIMUM_BIT)
00113
00114 };
00115
00116
00117 local interface Publisher : Entity {
00118 DataWriter create_datawriter(
00119 in Topic a_topic,
00120 in DataWriterQos qos,
00121 in DataWriterListener a_listener,
00122 in StatusMask mask);
00123
00124 ReturnCode_t delete_datawriter(
00125 in DataWriter a_datawriter);
00126
00127 DataWriter lookup_datawriter(
00128 in string topic_name);
00129
00130 ReturnCode_t delete_contained_entities();
00131
00132 ReturnCode_t set_qos(
00133 in PublisherQos qos);
00134
00135 ReturnCode_t get_qos(
00136 inout PublisherQos qos);
00137
00138 ReturnCode_t set_listener(
00139 in PublisherListener a_listener,
00140 in StatusMask mask);
00141
00142 PublisherListener get_listener();
00143
00144 ReturnCode_t suspend_publications();
00145
00146 ReturnCode_t resume_publications();
00147
00148 #ifndef OPENDDS_NO_OBJECT_MODEL_PROFILE
00149
00150 ReturnCode_t begin_coherent_changes();
00151
00152 ReturnCode_t end_coherent_changes();
00153
00154 #endif
00155
00156 ReturnCode_t wait_for_acknowledgments(
00157 in Duration_t max_wait);
00158
00159 DomainParticipant get_participant();
00160
00161 ReturnCode_t set_default_datawriter_qos(
00162 in DataWriterQos qos);
00163
00164 ReturnCode_t get_default_datawriter_qos(
00165 inout DataWriterQos qos);
00166
00167 ReturnCode_t copy_from_topic_qos(
00168 inout DataWriterQos a_datawriter_qos,
00169 in TopicQos a_topic_qos);
00170 };
00171
00172 };
00173
00174 module OpenDDS {
00175 module DCPS {
00176
00177 struct PublicationLostStatus {
00178 ::DDS::InstanceHandleSeq subscription_handles;
00179 };
00180
00181 typedef PublicationLostStatus PublicationDisconnectedStatus;
00182 typedef PublicationLostStatus PublicationReconnectedStatus;
00183 typedef PublicationLostStatus DisassociationStatus;
00184
00185 local interface DataWriterListener : ::DDS::DataWriterListener {
00186
00187
00188
00189
00190 void on_publication_disconnected(
00191 in ::DDS::DataWriter reader,
00192 in PublicationDisconnectedStatus status);
00193
00194
00195
00196 void on_publication_reconnected(
00197 in ::DDS::DataWriter reader,
00198 in PublicationReconnectedStatus status);
00199
00200
00201
00202
00203
00204
00205 void on_publication_lost(
00206 in ::DDS::DataWriter writer,
00207 in PublicationLostStatus status);
00208
00209
00210
00211
00212
00213 void on_connection_deleted(
00214 in ::DDS::DataWriter writer);
00215 };
00216
00217 };
00218 };
00219
00220 #endif