DdsDcpsPublication.idl

Go to the documentation of this file.
00001 /*
00002  *
00003  *
00004  * Distributed under the OpenDDS License.
00005  * See: http://www.opendds.org/license.html
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     // InstanceHandle_t register_instance(
00045     //          in Data instance);
00046     // InstanceHandle_t register_instance_w_timestamp(
00047     //          in Data instance,
00048     //          in Time_t timestamp);
00049     // ReturnCode_t unregister_instance(
00050     //          in Data instance,
00051     //          in InstanceHandle_t handle);
00052     // ReturnCode_t unregister_instance_w_timestamp(
00053     //          in Data instance,
00054     //          in InstanceHandle_t handle,
00055     //          in Time_t timestamp);
00056     // ReturnCode_t write(
00057     //          in Data instance_data,
00058     //          in InstanceHandle_t handle);
00059     // ReturnCode_t write_w_timestamp(
00060     //          in Data instance_data,
00061     //          in InstanceHandle_t handle,
00062     //          in Time_t source_timestamp);
00063     // ReturnCode_t dispose(
00064     //          in Data instance_data,
00065     //          in InstanceHandle_t instance_handle);
00066     // ReturnCode_t dispose_w_timestamp(
00067     //          in Data instance_data,
00068     //          in InstanceHandle_t instance_handle,
00069     //          in Time_t source_timestamp);
00070     // ReturnCode_t get_key_value(
00071     //          inout Data key_holder,
00072     //          in InstanceHandle_t handle);
00073     // InstanceHandle_t lookup_instance(
00074     //      in Data instance_data);
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     // Access the status
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       /// Called when a connection failure has been detected
00188       /// and there are still associations using the connection
00189       /// after the configurable graceful_disconnected_period.
00190       void on_publication_disconnected(
00191         in ::DDS::DataWriter reader,
00192         in PublicationDisconnectedStatus status);
00193 
00194       /// Called when a disconnected connection
00195       /// has been reconnected.
00196       void on_publication_reconnected(
00197         in ::DDS::DataWriter reader,
00198         in PublicationReconnectedStatus status);
00199 
00200       /// called when a connection is lost and hence one
00201       /// or more associations from this publication to
00202       /// some subscribers have been lost.
00203       /// A connection is "lost" when the retry attempts
00204       /// have been exhausted.
00205       void on_publication_lost(
00206         in ::DDS::DataWriter writer,
00207         in PublicationLostStatus status);
00208 
00209       /// called when the connection object is cleaned up and
00210       /// the reconnect thread exits.
00211       /// This hook is added for testing the reconnect thread
00212       /// leaking problem when the subscriber crashes.
00213       void on_connection_deleted(
00214         in ::DDS::DataWriter writer);
00215     };
00216 
00217   }; // End of module DCPS
00218 }; // End of module OpenDDS
00219 
00220 #endif /* OPENDDS_DCPS_PUBLICATION_IDL */

Generated on Fri Feb 12 20:05:22 2016 for OpenDDS by  doxygen 1.4.7