OpenDDS  Snapshot(2023/04/28-20:55)
Info.idl
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_INFOREPODISCOVERY_INFO_IDL
9 #define OPENDDS_DCPS_INFOREPODISCOVERY_INFO_IDL
10 
11 #include "dds/DdsDcpsInfoUtils.idl"
14 
15 #include "DataWriterRemote.idl"
16 #include "DataReaderRemote.idl"
17 
18 module OpenDDS {
19  module DCPS {
20 
21  // thrown when operation receives an
22  // invalid domain id
23  exception Invalid_Domain {};
24 
25  // thrown when operation receives an
26  // invalid domain participant id
27  exception Invalid_Participant {};
28 
29  // thrown when operation receives an
30  // invalid publication id
31  exception Invalid_Publication {};
32 
33  // thrown when operation receives an
34  // invalid subscription id
35  exception Invalid_Subscription {};
36 
37  // thrown when operation receives an
38  // invalid topic id
39  exception Invalid_Topic {};
40 
41  interface DCPSInfo {
42 
43  // Attach a DomainParticipant and assert that ownership resides
44  // with the called repository.
45  boolean attach_participant(in ::DDS::DomainId_t domainId,
46  in GUID_t participantId)
47  raises (Invalid_Domain,
49 
50 
51  // Domain participant calls to notify of a new topic
52  TopicStatus assert_topic (out GUID_t topicId,
53  in ::DDS::DomainId_t domainId,
54  in GUID_t participantId,
55  in string topicName,
56  in string DataTypeName,
58  in boolean hasDcpsKey)
59  raises (Invalid_Domain,
61 
62 
63  // Domain participant calls to locate a topic
64  // Arbitrarily returns a topic of this topicName
65  TopicStatus find_topic (in ::DDS::DomainId_t domainId,
66  in string topicName,
67  out string DataTypeName,
69  out GUID_t topicId)
70  raises (Invalid_Domain);
71 
72 
73  // Domain participant calls to remove a topic
74  TopicStatus remove_topic (in ::DDS::DomainId_t domainId,
75  in GUID_t participantId,
76  in GUID_t topicId)
77  raises (Invalid_Domain,
80 
81 
82 
83  // publisher calls to create new publication
84  // returns the id of the added publication
85  // 0 is an invalid id
86  GUID_t add_publication (in ::DDS::DomainId_t domainId,
87  in GUID_t participantId,
88  in GUID_t topicId,
89  in DataWriterRemote publication,
91  in TransportLocatorSeq transInfo,
92  in ::DDS::PublisherQos publisherQos,
93  in ::DDS::OctetSeq serializedTypeInfo)
94  raises (Invalid_Domain,
97 
98 
99  // publisher calls to remove a publication
100  void remove_publication (in ::DDS::DomainId_t domainId,
101  in GUID_t participantId,
102  in GUID_t publicationId)
103  raises (Invalid_Domain,
106 
107 
108 
109  // subscriber calls to create new subscription
110  // returns the id of the added subscription
111  // 0 is an invalid id
112  GUID_t add_subscription (in ::DDS::DomainId_t domainId,
113  in GUID_t participantId,
114  in GUID_t topicId,
115  in DataReaderRemote subscription,
117  in TransportLocatorSeq transInfo,
118  in ::DDS::SubscriberQos subscriberQos,
119  in string filterClassName,
120  in string filterExpression,
121  in ::DDS::StringSeq exprParams,
122  in ::DDS::OctetSeq serializedTypeInfo)
123  raises (Invalid_Domain,
125  Invalid_Topic);
126 
127 
128  // subscriber calls to remove a subscription
129  void remove_subscription (in ::DDS::DomainId_t domainId,
130  in GUID_t participantId,
131  in GUID_t subscriptionId)
132  raises (Invalid_Domain,
135 
136 
137 
138  // DomainParticipantFactory calls to add a new domain participant
139  // returns the id of the added participant and indication that the
140  // repository is federated.
141  // 0 is an invalid id
142  AddDomainStatus add_domain_participant (in ::DDS::DomainId_t domain,
143  in ::DDS::DomainParticipantQos qos)
144  raises (Invalid_Domain);
145 
146 
147  // DomainParticipantFactory calls to remove a domain participant
148  void remove_domain_participant (in ::DDS::DomainId_t domainId,
149  in GUID_t participantId)
150  raises (Invalid_Domain,
152 
153  /// Forces associations to dissolve by participant.
154  void disassociate_participant(in DDS::DomainId_t domainId,
155  in GUID_t local_id,
156  in GUID_t remote_id)
157  raises(Invalid_Domain,
159 
160  /// Forces an association to dissolve by subscription.
161  void disassociate_subscription(in DDS::DomainId_t domainId,
162  in GUID_t participantId,
163  in GUID_t local_id,
164  in GUID_t remote_id)
165  raises(Invalid_Domain,
168 
169  /// Forces an association to dissolve by publication.
170  void disassociate_publication(in DDS::DomainId_t domainId,
171  in GUID_t participantId,
172  in GUID_t local_id,
173  in GUID_t remote_id)
174  raises(Invalid_Domain,
177 
178  //Note: the ignore_xxx methods are not reversible - per DDS spec.
179 
180  // ignore participant when matching/associating pubs & subs
181  void ignore_domain_participant (in ::DDS::DomainId_t domainId,
182  in GUID_t myParticipantId,
183  in GUID_t ignoreId)
184  raises (Invalid_Domain,
186 
187 
188  // ignore topic when matching/associating pubs & subs
189  void ignore_topic (in ::DDS::DomainId_t domainId,
190  in GUID_t myParticipantId,
191  in GUID_t ignoreId)
192  raises (Invalid_Domain,
194  Invalid_Topic);
195 
196 
197  // ignore subscription when matching/associating pubs & subs
198  void ignore_subscription (in ::DDS::DomainId_t domainId,
199  in GUID_t myParticipantId,
200  in GUID_t ignoreId)
201  raises (Invalid_Domain,
204 
205 
206  // ignore publication when matching/associating pubs & subs
207  void ignore_publication (in ::DDS::DomainId_t domainId,
208  in GUID_t myParticipantId,
209  in GUID_t ignoreId)
210  raises (Invalid_Domain,
213 
214  //=======================================================
215  // Update the QoS of an enitity to support Built-in Topics
216  // and updating the other side of assocations.
217  // The caller will have already checked that the QoS
218  // values are valid, consistent and changeable.
219  // The repo will break any assocations that become
220  // incompatible.
221  //
222  boolean update_domain_participant_qos (in ::DDS::DomainId_t domain,
223  in GUID_t participantId,
224  in ::DDS::DomainParticipantQos qos)
225  raises (Invalid_Domain,
227 
228  boolean update_topic_qos (in GUID_t topicId,
229  in ::DDS::DomainId_t domainId,
230  in GUID_t participantId,
231  in ::DDS::TopicQos qos)
232  raises (Invalid_Domain,
234  Invalid_Topic);
235 
236  boolean update_publication_qos (in ::DDS::DomainId_t domainId,
237  in GUID_t participantId,
238  in GUID_t publicationId,
240  in ::DDS::PublisherQos publisherQos)
241  raises (Invalid_Domain,
244 
245  boolean update_subscription_qos (in ::DDS::DomainId_t domainId,
246  in GUID_t participantId,
247  in GUID_t subscriptionId,
249  in ::DDS::SubscriberQos subscriberQos)
250  raises (Invalid_Domain,
253 
254  boolean update_subscription_params(in ::DDS::DomainId_t domainId,
255  in GUID_t participantId,
256  in GUID_t subscriptionId,
257  in ::DDS::StringSeq exprParams)
258  raises (Invalid_Domain,
261 
262  void shutdown();
263 
264  // returns a string containing state information
265  string dump_to_string();
266  };
267 
268  }; // module DDS
269 }; // module OpenDDS
270 
271 #endif /* OPENDDS_DCPS_DCPSINFO_IDL */
sequence< TransportLocator > TransportLocatorSeq
DOMAINID_TYPE_NATIVE DomainId_t
sequence< string > StringSeq
Definition: StringSeq.idl:30
int shutdown(ACE_HANDLE handle, int how)
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28