Info.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_DCPSINFO_IDL
00009 #define OPENDDS_DCPS_DCPSINFO_IDL
00010 
00011 #include "dds/DdsDcpsInfoUtils.idl"
00012 #include "dds/DdsDcpsPublication.idl"
00013 #include "dds/DdsDcpsSubscription.idl"
00014 
00015 #include "dds/DCPS/InfoRepoDiscovery/DataWriterRemote.idl"
00016 #include "dds/DCPS/InfoRepoDiscovery/DataReaderRemote.idl"
00017 
00018 module OpenDDS {
00019   module DCPS {
00020 
00021     // thrown when operation receives an
00022     // invalid domain id
00023     exception Invalid_Domain {};
00024 
00025     // thrown when operation receives an
00026     // invalid domain participant id
00027     exception Invalid_Participant {};
00028 
00029     // thrown when operation receives an
00030     // invalid publication id
00031     exception Invalid_Publication {};
00032 
00033     // thrown when operation receives an
00034     // invalid subscription id
00035     exception Invalid_Subscription {};
00036 
00037     // thrown when operation receives an
00038     // invalid topic id
00039     exception Invalid_Topic {};
00040 
00041     interface DCPSInfo {
00042 
00043       // Attach a DomainParticipant and assert that ownership resides
00044       // with the called repository.
00045       boolean attach_participant(in ::DDS::DomainId_t domainId,
00046                                  in RepoId            participantId)
00047         raises (Invalid_Domain,
00048                 Invalid_Participant);
00049 
00050 
00051       // Domain participant calls to notify of a new topic
00052       TopicStatus assert_topic (out RepoId topicId,
00053                                 in ::DDS::DomainId_t domainId,
00054                                 in RepoId  participantId,
00055                                 in string          topicName,
00056                                 in string          DataTypeName,
00057                                 in ::DDS::TopicQos   qos,
00058                                 in boolean hasDcpsKey)
00059         raises (Invalid_Domain,
00060                 Invalid_Participant);
00061 
00062 
00063       // Domain participant calls to locate a topic
00064       // Arbitrarily returns a topic of this topicName
00065       TopicStatus find_topic (in ::DDS::DomainId_t domainId,
00066                               in string          topicName,
00067                               out string         DataTypeName,
00068                               out ::DDS::TopicQos  qos,
00069                               out RepoId topicId)
00070         raises (Invalid_Domain);
00071 
00072 
00073       // Domain participant calls to remove a topic
00074       TopicStatus remove_topic (in ::DDS::DomainId_t domainId,
00075                                         in RepoId  participantId,
00076                                         in RepoId  topicId)
00077         raises (Invalid_Domain,
00078                 Invalid_Participant,
00079                 Invalid_Topic);
00080 
00081 
00082 
00083       // publisher calls to create new publication
00084       // returns the id of the added publication
00085       // 0 is an invalid id
00086       RepoId add_publication (in ::DDS::DomainId_t domainId,
00087                               in RepoId participantId,
00088                               in RepoId topicId,
00089                               in DataWriterRemote publication,
00090                               in ::DDS::DataWriterQos qos,
00091                               in TransportLocatorSeq transInfo,
00092                               in ::DDS::PublisherQos publisherQos)
00093         raises (Invalid_Domain,
00094                 Invalid_Participant,
00095                 Invalid_Topic);
00096 
00097 
00098       // publisher calls to remove a publication
00099       void remove_publication (in ::DDS::DomainId_t domainId,
00100                                in RepoId participantId,
00101                                in RepoId publicationId)
00102         raises (Invalid_Domain,
00103                 Invalid_Participant,
00104                 Invalid_Publication);
00105 
00106 
00107 
00108       // subscriber calls to create new subscription
00109       // returns the id of the added subscription
00110       // 0 is an invalid id
00111       RepoId add_subscription (in ::DDS::DomainId_t domainId,
00112                                in RepoId participantId,
00113                                in RepoId topicId,
00114                                in DataReaderRemote subscription,
00115                                in ::DDS::DataReaderQos qos,
00116                                in TransportLocatorSeq transInfo,
00117                                in ::DDS::SubscriberQos subscriberQos,
00118                                in string filterClassName,
00119                                in string filterExpression,
00120                                in ::DDS::StringSeq exprParams)
00121         raises (Invalid_Domain,
00122                 Invalid_Participant,
00123                 Invalid_Topic);
00124 
00125 
00126       // subscriber calls to remove a subscription
00127       void remove_subscription (in ::DDS::DomainId_t domainId,
00128                                 in RepoId participantId,
00129                                 in RepoId subscriptionId)
00130         raises (Invalid_Domain,
00131                 Invalid_Participant,
00132                 Invalid_Subscription);
00133 
00134 
00135 
00136       // DomainParticipantFactory calls to add a new domain participant
00137       // returns the id of the added participant and indication that the
00138       // repository is federated.
00139       // 0 is an invalid id
00140       AddDomainStatus add_domain_participant (in ::DDS::DomainId_t domain,
00141                                               in ::DDS::DomainParticipantQos qos)
00142         raises (Invalid_Domain);
00143 
00144 
00145       // DomainParticipantFactory calls to remove a domain participant
00146       void remove_domain_participant (in ::DDS::DomainId_t domainId,
00147                                       in RepoId participantId)
00148         raises (Invalid_Domain,
00149                 Invalid_Participant);
00150 
00151       /// Inform the InfoRepo that the process of creating an association,
00152       /// which was started by the Data{Reader,Writer}Remote::add_association()
00153       /// operation, has completed.  The peer that was passive
00154       /// ("active" parameter == false) calls this after the connection is made.
00155       oneway void association_complete(in DDS::DomainId_t domainId,
00156                                 in RepoId participantId,
00157                                 in RepoId localId,
00158                                 in RepoId remoteId);
00159 
00160       /// Forces associations to dissolve by participant.
00161       void disassociate_participant(in DDS::DomainId_t domainId,
00162                                     in RepoId local_id,
00163                                     in RepoId remote_id)
00164         raises(Invalid_Domain,
00165                Invalid_Participant);
00166 
00167       /// Forces an association to dissolve by subscription.
00168       void disassociate_subscription(in DDS::DomainId_t domainId,
00169                                      in RepoId participantId,
00170                                      in RepoId local_id,
00171                                      in RepoId remote_id)
00172         raises(Invalid_Domain,
00173                Invalid_Participant,
00174                Invalid_Subscription);
00175 
00176       /// Forces an association to dissolve by publication.
00177       void disassociate_publication(in DDS::DomainId_t domainId,
00178                                     in RepoId participantId,
00179                                     in RepoId local_id,
00180                                     in RepoId remote_id)
00181         raises(Invalid_Domain,
00182                Invalid_Participant,
00183                Invalid_Publication);
00184 
00185       //Note: the ignore_xxx methods are not reversable - per DDS spec.
00186 
00187       // ignore participant when matching/associating pubs & subs
00188       void ignore_domain_participant (in ::DDS::DomainId_t domainId,
00189                                       in RepoId myParticipantId,
00190                                       in RepoId ignoreId)
00191         raises (Invalid_Domain,
00192                 Invalid_Participant);
00193 
00194 
00195       // ignore topic when matching/associating pubs & subs
00196       void ignore_topic (in ::DDS::DomainId_t domainId,
00197                          in RepoId myParticipantId,
00198                          in RepoId ignoreId)
00199         raises (Invalid_Domain,
00200                 Invalid_Participant,
00201                 Invalid_Topic);
00202 
00203 
00204       // ignore subscription when matching/associating pubs & subs
00205       void ignore_subscription (in ::DDS::DomainId_t domainId,
00206                                 in RepoId myParticipantId,
00207                                 in RepoId ignoreId)
00208         raises (Invalid_Domain,
00209                 Invalid_Participant,
00210                 Invalid_Subscription);
00211 
00212 
00213       // ignore publication when matching/associating pubs & subs
00214       void ignore_publication (in ::DDS::DomainId_t domainId,
00215                                in RepoId myParticipantId,
00216                                in RepoId ignoreId)
00217         raises (Invalid_Domain,
00218                 Invalid_Participant,
00219                 Invalid_Publication);
00220 
00221       //=======================================================
00222       // Update the QoS of an enitity to support Built-in Topics
00223       // and updating the other side of assocations.
00224       // The caller will have already checked that the QoS
00225       // values are valid, consistent and changeable.
00226       // The repo will break any assocations that become
00227       // incompatible.
00228       //
00229       boolean update_domain_participant_qos (in ::DDS::DomainId_t domain,
00230                                           in RepoId participantId,
00231                                           in ::DDS::DomainParticipantQos qos)
00232         raises (Invalid_Domain,
00233                 Invalid_Participant);
00234 
00235       boolean update_topic_qos (in RepoId topicId,
00236                              in ::DDS::DomainId_t domainId,
00237                              in RepoId  participantId,
00238                              in ::DDS::TopicQos   qos)
00239         raises (Invalid_Domain,
00240                 Invalid_Participant,
00241                 Invalid_Topic);
00242 
00243       boolean update_publication_qos (in ::DDS::DomainId_t domainId,
00244                                    in RepoId participantId,
00245                                    in RepoId publicationId,
00246                                    in ::DDS::DataWriterQos qos,
00247                                    in ::DDS::PublisherQos publisherQos)
00248         raises (Invalid_Domain,
00249                 Invalid_Participant,
00250                 Invalid_Publication);
00251 
00252       boolean update_subscription_qos (in ::DDS::DomainId_t domainId,
00253                                     in RepoId participantId,
00254                                     in RepoId subscriptionId,
00255                                     in ::DDS::DataReaderQos qos,
00256                                     in ::DDS::SubscriberQos subscriberQos)
00257         raises (Invalid_Domain,
00258                 Invalid_Participant,
00259                 Invalid_Subscription);
00260 
00261       boolean update_subscription_params(in ::DDS::DomainId_t domainId,
00262                                          in RepoId participantId,
00263                                          in RepoId subscriptionId,
00264                                          in ::DDS::StringSeq exprParams)
00265         raises (Invalid_Domain,
00266                 Invalid_Participant,
00267                 Invalid_Subscription);
00268 
00269       void shutdown();
00270 
00271       // returns a string containing state information
00272       string dump_to_string();
00273     };
00274 
00275   }; // module DDS
00276 }; // module OpenDDS
00277 
00278 #endif /* OPENDDS_DCPS_DCPSINFO_IDL */

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