Fast DDS  Version 3.6.1.0
Fast DDS
DomainParticipant.hpp
1 // Copyright 2019 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
20 #ifndef FASTDDS_DDS_DOMAIN__DOMAINPARTICIPANT_HPP
21 #define FASTDDS_DDS_DOMAIN__DOMAINPARTICIPANT_HPP
22 
23 #include <functional>
24 #include <string>
25 #include <utility>
26 #include <vector>
27 
28 #include <fastdds/dds/builtin/topic/ParticipantBuiltinTopicData.hpp>
29 #include <fastdds/dds/builtin/topic/TopicBuiltinTopicData.hpp>
30 #include <fastdds/dds/core/Entity.hpp>
31 #include <fastdds/dds/core/ReturnCode.hpp>
32 #include <fastdds/dds/core/status/StatusMask.hpp>
33 #include <fastdds/dds/domain/qos/DomainParticipantQos.hpp>
34 #include <fastdds/dds/domain/qos/ReplierQos.hpp>
35 #include <fastdds/dds/domain/qos/RequesterQos.hpp>
36 #include <fastdds/dds/rpc/ServiceTypeSupport.hpp>
37 #include <fastdds/dds/topic/ContentFilteredTopic.hpp>
38 #include <fastdds/dds/topic/IContentFilterFactory.hpp>
39 #include <fastdds/dds/topic/Topic.hpp>
40 #include <fastdds/dds/topic/TopicListener.hpp>
41 #include <fastdds/dds/topic/TypeSupport.hpp>
42 #include <fastdds/rtps/common/Guid.hpp>
43 #include <fastdds/rtps/common/SampleIdentity.hpp>
44 #include <fastdds/rtps/common/Time_t.hpp>
45 
46 namespace dds {
47 namespace domain {
48 class DomainParticipant;
49 } // namespace domain
50 } // namespace dds
51 
52 namespace eprosima {
53 namespace fastdds {
54 namespace rtps {
55 class ResourceEvent;
56 } // namespace rtps
57 
58 namespace dds {
59 namespace rpc {
60 class Replier;
61 class Requester;
62 class Service;
63 } // namespace rpc
64 
65 class DomainParticipantImpl;
67 class Publisher;
68 class PublisherQos;
69 class PublisherListener;
70 class ReplierQos;
71 class RequesterQos;
72 class Subscriber;
73 class SubscriberQos;
74 class SubscriberListener;
75 class TopicQos;
76 
77 // Not implemented classes
78 class MultiTopic;
79 
85 class DomainParticipant : public Entity
86 {
87 public:
88 
92  virtual ~DomainParticipant();
93 
94  // Superclass methods
95 
102  FASTDDS_EXPORTED_API ReturnCode_t get_qos(
103  DomainParticipantQos& qos) const;
104 
110  FASTDDS_EXPORTED_API const DomainParticipantQos& get_qos() const;
111 
119  FASTDDS_EXPORTED_API ReturnCode_t set_qos(
120  const DomainParticipantQos& qos) const;
121 
127  FASTDDS_EXPORTED_API const DomainParticipantListener* get_listener() const;
128 
136  FASTDDS_EXPORTED_API ReturnCode_t set_listener(
137  DomainParticipantListener* listener);
138 
147  FASTDDS_EXPORTED_API ReturnCode_t set_listener(
148  DomainParticipantListener* listener,
149  const std::chrono::seconds timeout);
150 
159  FASTDDS_EXPORTED_API ReturnCode_t set_listener(
160  DomainParticipantListener* listener,
161  const StatusMask& mask);
162 
172  FASTDDS_EXPORTED_API ReturnCode_t set_listener(
173  DomainParticipantListener* listener,
174  const StatusMask& mask,
175  const std::chrono::seconds timeout);
176 
182  FASTDDS_EXPORTED_API ReturnCode_t enable() override;
183 
184  // DomainParticipant specific methods from DDS API
185 
195  FASTDDS_EXPORTED_API Publisher* create_publisher(
196  const PublisherQos& qos,
197  ReturnCode_t& ret_code,
198  PublisherListener* listener = nullptr,
199  const StatusMask& mask = StatusMask::all());
200 
209  FASTDDS_EXPORTED_API Publisher* create_publisher(
210  const PublisherQos& qos,
211  PublisherListener* listener = nullptr,
212  const StatusMask& mask = StatusMask::all());
213 
224  const std::string& profile_name,
225  ReturnCode_t& ret_code,
226  PublisherListener* listener = nullptr,
227  const StatusMask& mask = StatusMask::all());
228 
238  const std::string& profile_name,
239  PublisherListener* listener = nullptr,
240  const StatusMask& mask = StatusMask::all());
241 
249  FASTDDS_EXPORTED_API ReturnCode_t delete_publisher(
250  const Publisher* publisher);
251 
261  FASTDDS_EXPORTED_API Subscriber* create_subscriber(
262  const SubscriberQos& qos,
263  ReturnCode_t& ret_code,
264  SubscriberListener* listener = nullptr,
265  const StatusMask& mask = StatusMask::all());
266 
275  FASTDDS_EXPORTED_API Subscriber* create_subscriber(
276  const SubscriberQos& qos,
277  SubscriberListener* listener = nullptr,
278  const StatusMask& mask = StatusMask::all());
279 
290  const std::string& profile_name,
291  ReturnCode_t& ret_code,
292  SubscriberListener* listener = nullptr,
293  const StatusMask& mask = StatusMask::all());
294 
304  const std::string& profile_name,
305  SubscriberListener* listener = nullptr,
306  const StatusMask& mask = StatusMask::all());
307 
315  FASTDDS_EXPORTED_API ReturnCode_t delete_subscriber(
316  const Subscriber* subscriber);
317 
329  FASTDDS_EXPORTED_API Topic* create_topic(
330  const std::string& topic_name,
331  const std::string& type_name,
332  const TopicQos& qos,
333  ReturnCode_t& ret_code,
334  TopicListener* listener = nullptr,
335  const StatusMask& mask = StatusMask::all());
336 
347  FASTDDS_EXPORTED_API Topic* create_topic(
348  const std::string& topic_name,
349  const std::string& type_name,
350  const TopicQos& qos,
351  TopicListener* listener = nullptr,
352  const StatusMask& mask = StatusMask::all());
353 
365  FASTDDS_EXPORTED_API Topic* create_topic_with_profile(
366  const std::string& topic_name,
367  const std::string& type_name,
368  const std::string& profile_name,
369  ReturnCode_t& ret_code,
370  TopicListener* listener = nullptr,
371  const StatusMask& mask = StatusMask::all());
372 
383  FASTDDS_EXPORTED_API Topic* create_topic_with_profile(
384  const std::string& topic_name,
385  const std::string& type_name,
386  const std::string& profile_name,
387  TopicListener* listener = nullptr,
388  const StatusMask& mask = StatusMask::all());
389 
397  FASTDDS_EXPORTED_API ReturnCode_t delete_topic(
398  const Topic* topic);
399 
415  const std::string& name,
416  Topic* related_topic,
417  const std::string& filter_expression,
418  const std::vector<std::string>& expression_parameters,
419  ReturnCode_t& ret_code);
420 
435  const std::string& name,
436  Topic* related_topic,
437  const std::string& filter_expression,
438  const std::vector<std::string>& expression_parameters);
439 
458  const std::string& name,
459  Topic* related_topic,
460  const std::string& filter_expression,
461  const std::vector<std::string>& expression_parameters,
462  const char* filter_class_name,
463  ReturnCode_t& ret_code);
464 
482  const std::string& name,
483  Topic* related_topic,
484  const std::string& filter_expression,
485  const std::vector<std::string>& expression_parameters,
486  const char* filter_class_name);
487 
496  const ContentFilteredTopic* a_contentfilteredtopic);
497 
508  FASTDDS_EXPORTED_API MultiTopic* create_multitopic(
509  const std::string& name,
510  const std::string& type_name,
511  const std::string& subscription_expression,
512  const std::vector<std::string>& expression_parameters,
513  ReturnCode_t& ret_code);
514 
524  FASTDDS_EXPORTED_API MultiTopic* create_multitopic(
525  const std::string& name,
526  const std::string& type_name,
527  const std::string& subscription_expression,
528  const std::vector<std::string>& expression_parameters);
529 
540  FASTDDS_EXPORTED_API ReturnCode_t delete_multitopic(
541  const MultiTopic* a_multitopic);
542 
556  FASTDDS_EXPORTED_API Topic* find_topic(
557  const std::string& topic_name,
558  const fastdds::dds::Duration_t& timeout);
559 
568  FASTDDS_EXPORTED_API rpc::Service* create_service(
569  const std::string& service_name,
570  const std::string& service_type_name,
571  ReturnCode_t& ret_code);
572 
581  FASTDDS_EXPORTED_API rpc::Service* create_service(
582  const std::string& service_name,
583  const std::string& service_type_name);
584 
591  FASTDDS_EXPORTED_API rpc::Service* find_service(
592  const std::string& service_name) const;
593 
600  FASTDDS_EXPORTED_API ReturnCode_t delete_service(
601  const rpc::Service* service);
602 
611  rpc::Service* service,
612  const RequesterQos& requester_qos,
613  ReturnCode_t& ret_code);
614 
624  rpc::Service* service,
625  const RequesterQos& requester_qos);
626 
635  const std::string& service_name,
636  rpc::Requester* requester);
637 
647  FASTDDS_EXPORTED_API rpc::Replier* create_service_replier(
648  rpc::Service* service,
649  const ReplierQos& replier_qos,
650  ReturnCode_t& ret_code);
651 
660  FASTDDS_EXPORTED_API rpc::Replier* create_service_replier(
661  rpc::Service* service,
662  const ReplierQos& replier_qos);
663 
671  FASTDDS_EXPORTED_API ReturnCode_t delete_service_replier(
672  const std::string& service_name,
673  rpc::Replier* replier);
674 
685  const std::string& topic_name) const;
686 
692  FASTDDS_EXPORTED_API const Subscriber* get_builtin_subscriber() const;
693 
703  FASTDDS_EXPORTED_API ReturnCode_t ignore_participant(
704  const InstanceHandle_t& handle);
705 
717  FASTDDS_EXPORTED_API ReturnCode_t ignore_topic(
718  const InstanceHandle_t& handle);
719 
731  FASTDDS_EXPORTED_API ReturnCode_t ignore_publication(
732  const InstanceHandle_t& handle);
733 
745  FASTDDS_EXPORTED_API ReturnCode_t ignore_subscription(
746  const InstanceHandle_t& handle);
747 
754  FASTDDS_EXPORTED_API DomainId_t get_domain_id() const;
755 
761  FASTDDS_EXPORTED_API ReturnCode_t delete_contained_entities();
762 
778  FASTDDS_EXPORTED_API ReturnCode_t assert_liveliness();
779 
795  const PublisherQos& qos);
796 
807  FASTDDS_EXPORTED_API const PublisherQos& get_default_publisher_qos() const;
808 
821  PublisherQos& qos) const;
822 
831  const std::string& profile_name,
832  PublisherQos& qos) const;
833 
842  const std::string& xml,
843  PublisherQos& qos) const;
844 
854  const std::string& xml,
855  PublisherQos& qos,
856  const std::string& profile_name) const;
857 
868  const std::string& xml,
869  PublisherQos& qos) const;
870 
886  const SubscriberQos& qos);
887 
898  FASTDDS_EXPORTED_API const SubscriberQos& get_default_subscriber_qos() const;
899 
912  SubscriberQos& qos) const;
913 
922  const std::string& profile_name,
923  SubscriberQos& qos) const;
924 
933  const std::string& xml,
934  SubscriberQos& qos) const;
935 
945  const std::string& xml,
946  SubscriberQos& qos,
947  const std::string& profile_name) const;
948 
959  const std::string& xml,
960  SubscriberQos& qos) const;
961 
976  FASTDDS_EXPORTED_API ReturnCode_t set_default_topic_qos(
977  const TopicQos& qos);
978 
989  FASTDDS_EXPORTED_API const TopicQos& get_default_topic_qos() const;
990 
1002  FASTDDS_EXPORTED_API ReturnCode_t get_default_topic_qos(
1003  TopicQos& qos) const;
1004 
1013  const std::string& profile_name,
1014  TopicQos& qos) const;
1015 
1026  const std::string& profile_name,
1027  TopicQos& qos,
1028  std::string& topic_name,
1029  std::string& topic_data_type) const;
1030 
1038  FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(
1039  const std::string& xml,
1040  TopicQos& qos) const;
1041 
1051  FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(
1052  const std::string& xml,
1053  TopicQos& qos,
1054  std::string& topic_name,
1055  std::string& topic_data_type) const;
1056 
1065  FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(
1066  const std::string& xml,
1067  TopicQos& qos,
1068  const std::string& profile_name) const;
1069 
1080  FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(
1081  const std::string& xml,
1082  TopicQos& qos,
1083  std::string& topic_name,
1084  std::string& topic_data_type,
1085  const std::string& profile_name) const;
1086 
1097  const std::string& xml,
1098  TopicQos& qos) const;
1099 
1112  const std::string& xml,
1113  TopicQos& qos,
1114  std::string& topic_name,
1115  std::string& topic_data_type) const;
1116 
1125  const std::string& profile_name,
1126  ReplierQos& qos) const;
1127 
1136  const std::string& xml,
1137  ReplierQos& qos) const;
1138 
1148  const std::string& xml,
1149  ReplierQos& qos,
1150  const std::string& profile_name) const;
1151 
1162  const std::string& xml,
1163  ReplierQos& qos) const;
1164 
1173  const std::string& profile_name,
1174  RequesterQos& qos) const;
1175 
1184  const std::string& xml,
1185  RequesterQos& qos) const;
1186 
1196  const std::string& xml,
1197  RequesterQos& qos,
1198  const std::string& profile_name) const;
1199 
1210  const std::string& xml,
1211  RequesterQos& qos) const;
1212 
1222  std::vector<InstanceHandle_t>& participant_handles) const;
1223 
1234  ParticipantBuiltinTopicData& participant_data,
1235  const InstanceHandle_t& participant_handle) const;
1236 
1245  FASTDDS_EXPORTED_API ReturnCode_t get_discovered_topics(
1246  std::vector<InstanceHandle_t>& topic_handles) const;
1247 
1258  builtin::TopicBuiltinTopicData& topic_data,
1259  const InstanceHandle_t& topic_handle) const;
1260 
1271  FASTDDS_EXPORTED_API bool contains_entity(
1272  const InstanceHandle_t& a_handle,
1273  bool recursive = true) const;
1274 
1282  FASTDDS_EXPORTED_API ReturnCode_t get_current_time(
1283  fastdds::dds::Time_t& current_time) const;
1284 
1285  // DomainParticipant methods specific from Fast DDS
1286 
1295  FASTDDS_EXPORTED_API ReturnCode_t register_type(
1296  TypeSupport type,
1297  const std::string& type_name);
1298 
1306  FASTDDS_EXPORTED_API ReturnCode_t register_type(
1307  TypeSupport type);
1308 
1316  FASTDDS_EXPORTED_API ReturnCode_t unregister_type(
1317  const std::string& typeName);
1318 
1325  FASTDDS_EXPORTED_API TypeSupport find_type(
1326  const std::string& type_name) const;
1327 
1335  FASTDDS_EXPORTED_API ReturnCode_t register_service_type(
1336  rpc::ServiceTypeSupport service_type,
1337  const std::string& service_type_name);
1338 
1346  const std::string& service_type_name);
1347 
1355  const std::string& service_type_name) const;
1356 
1362  FASTDDS_EXPORTED_API InstanceHandle_t get_instance_handle() const;
1363 
1364  // From here legacy RTPS methods.
1365 
1371  FASTDDS_EXPORTED_API const fastdds::rtps::GUID_t& guid() const;
1372 
1378  FASTDDS_EXPORTED_API std::vector<std::string> get_participant_names() const;
1379 
1391  FASTDDS_EXPORTED_API bool new_remote_endpoint_discovered(
1392  const fastdds::rtps::GUID_t& partguid,
1393  uint16_t userId,
1395 
1427  const char* filter_class_name,
1428  IContentFilterFactory* const filter_factory);
1429 
1439  const char* filter_class_name);
1440 
1461  const char* filter_class_name);
1462 
1468  FASTDDS_EXPORTED_API bool has_active_entities();
1469 
1470 protected:
1471 
1473  const StatusMask& mask = StatusMask::all());
1474 
1476 
1478 
1480 
1481  friend class ::dds::domain::DomainParticipant;
1482 };
1483 
1484 } // namespace dds
1485 } // namespace fastdds
1486 } // namespace eprosima
1487 
1488 #endif // FASTDDS_DDS_DOMAIN__DOMAINPARTICIPANT_HPP
Specialization of TopicDescription that allows for content-based subscriptions.
Definition: ContentFilteredTopic.hpp:45
Class DomainParticipantFactory.
Definition: DomainParticipantFactory.hpp:61
Class DomainParticipant used to group Publishers and Subscribers into a single working unit.
Definition: DomainParticipant.hpp:86
FASTDDS_EXPORTED_API ReturnCode_t get_subscriber_qos_from_xml(const std::string &xml, SubscriberQos &qos) const
Fills the SubscriberQos with the first subscriber profile found in the provided XML.
FASTDDS_EXPORTED_API IContentFilterFactory * lookup_content_filter_factory(const char *filter_class_name)
Lookup a custom content filter factory previously registered with register_content_filter_factory.
FASTDDS_EXPORTED_API bool contains_entity(const InstanceHandle_t &a_handle, bool recursive=true) const
This operation checks whether or not the given handle represents an Entity that was created from the ...
FASTDDS_EXPORTED_API ReturnCode_t get_default_subscriber_qos_from_xml(const std::string &xml, SubscriberQos &qos) const
Fills the SubscriberQos with the default subscriber profile found in the provided XML (if there is).
FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(const std::string &xml, TopicQos &qos, std::string &topic_name, std::string &topic_data_type, const std::string &profile_name) const
Fills the TopicQos with the topic profile with profile_name to be found in the provided XML,...
FASTDDS_EXPORTED_API ReturnCode_t get_publisher_qos_from_xml(const std::string &xml, PublisherQos &qos) const
Fills the PublisherQos with the first publisher profile found in the provided XML.
FASTDDS_EXPORTED_API rpc::ServiceTypeSupport find_service_type(const std::string &service_type_name) const
This method gives access to a registered service type based on its name.
FASTDDS_EXPORTED_API rpc::Requester * create_service_requester(rpc::Service *service, const RequesterQos &requester_qos, ReturnCode_t &ret_code)
Create a RPC Requester in a given Service.
FASTDDS_EXPORTED_API ReturnCode_t register_content_filter_factory(const char *filter_class_name, IContentFilterFactory *const filter_factory)
Register a custom content filter factory, which can be used to create a ContentFilteredTopic.
FASTDDS_EXPORTED_API ReturnCode_t ignore_publication(const InstanceHandle_t &handle)
Locally ignore a remote datawriter.
FASTDDS_EXPORTED_API ReturnCode_t set_listener(DomainParticipantListener *listener)
Modifies the DomainParticipantListener, sets the mask to StatusMask::all()
FASTDDS_EXPORTED_API ReturnCode_t get_default_subscriber_qos(SubscriberQos &qos) const
This operation retrieves the default value of the Subscriber QoS, that is, the QoS policies which wil...
FASTDDS_EXPORTED_API ReturnCode_t get_default_requester_qos_from_xml(const std::string &xml, RequesterQos &qos) const
Fills the RequesterQos with the default requester profile found in the provided XML (if there is).
FASTDDS_EXPORTED_API ReturnCode_t assert_liveliness()
This operation manually asserts the liveliness of the DomainParticipant.
FASTDDS_EXPORTED_API ReturnCode_t ignore_participant(const InstanceHandle_t &handle)
Locally ignore a remote domain participant.
FASTDDS_EXPORTED_API ReturnCode_t unregister_content_filter_factory(const char *filter_class_name)
Unregister a custom content filter factory previously registered with register_content_filter_factory...
FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(const std::string &xml, TopicQos &qos, std::string &topic_name, std::string &topic_data_type) const
Fills the TopicQos with the first topic profile found in the provided XML, and also its corresponding...
DomainParticipantImpl * impl_
Definition: DomainParticipant.hpp:1475
FASTDDS_EXPORTED_API bool new_remote_endpoint_discovered(const fastdds::rtps::GUID_t &partguid, uint16_t userId, fastdds::rtps::EndpointKind_t kind)
This method can be used when using a StaticEndpointDiscovery mechanism different that the one include...
FASTDDS_EXPORTED_API ReturnCode_t set_default_subscriber_qos(const SubscriberQos &qos)
This operation sets a default value of the Subscriber QoS policies that will be used for newly create...
FASTDDS_EXPORTED_API Publisher * create_publisher(const PublisherQos &qos, PublisherListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Publisher in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t delete_publisher(const Publisher *publisher)
Deletes an existing Publisher.
FASTDDS_EXPORTED_API rpc::Requester * create_service_requester(rpc::Service *service, const RequesterQos &requester_qos)
Create a RPC Requester in a given Service.
FASTDDS_EXPORTED_API ReturnCode_t register_service_type(rpc::ServiceTypeSupport service_type, const std::string &service_type_name)
Register a service type in this participant.
FASTDDS_EXPORTED_API ReturnCode_t get_discovered_participant_data(ParticipantBuiltinTopicData &participant_data, const InstanceHandle_t &participant_handle) const
Retrieves the DomainParticipant data of a discovered not ignored participant.
FASTDDS_EXPORTED_API rpc::Replier * create_service_replier(rpc::Service *service, const ReplierQos &replier_qos, ReturnCode_t &ret_code)
Create a RPC Replier in a given Service.
FASTDDS_EXPORTED_API ReturnCode_t ignore_topic(const InstanceHandle_t &handle)
Locally ignore a topic.
FASTDDS_EXPORTED_API TypeSupport find_type(const std::string &type_name) const
This method gives access to a registered type based on its name.
FASTDDS_EXPORTED_API ReturnCode_t get_replier_qos_from_xml(const std::string &xml, ReplierQos &qos) const
Fills the ReplierQos with the first replier profile found in the provided XML.
FASTDDS_EXPORTED_API ReturnCode_t set_listener(DomainParticipantListener *listener, const StatusMask &mask)
Modifies the DomainParticipantListener.
FASTDDS_EXPORTED_API ReturnCode_t unregister_service_type(const std::string &service_type_name)
Unregister a service type in this participant.
FASTDDS_EXPORTED_API rpc::Service * create_service(const std::string &service_name, const std::string &service_type_name)
Create a RPC service.
FASTDDS_EXPORTED_API ReturnCode_t get_current_time(fastdds::dds::Time_t &current_time) const
This operation returns the current value of the time that the service uses to time-stamp data-writes ...
FASTDDS_EXPORTED_API ReturnCode_t set_qos(const DomainParticipantQos &qos) const
This operation sets the value of the DomainParticipant QoS policies.
FASTDDS_EXPORTED_API ReturnCode_t get_requester_qos_from_xml(const std::string &xml, RequesterQos &qos, const std::string &profile_name) const
Fills the RequesterQos with the requester profile with profile_name to be found in the provided XML.
FASTDDS_EXPORTED_API ReturnCode_t get_default_replier_qos_from_xml(const std::string &xml, ReplierQos &qos) const
Fills the ReplierQos with the default replier profile found in the provided XML (if there is).
FASTDDS_EXPORTED_API ReturnCode_t set_default_topic_qos(const TopicQos &qos)
This operation sets a default value of the Topic QoS policies which will be used for newly created To...
FASTDDS_EXPORTED_API Topic * find_topic(const std::string &topic_name, const fastdds::dds::Duration_t &timeout)
Gives access to an existing (or ready to exist) enabled Topic.
FASTDDS_EXPORTED_API ReturnCode_t get_default_topic_qos_from_xml(const std::string &xml, TopicQos &qos, std::string &topic_name, std::string &topic_data_type) const
Fills the TopicQos with the default topic profile found in the provided XML (if there is),...
FASTDDS_EXPORTED_API const DomainParticipantQos & get_qos() const
This operation returns the value of the DomainParticipant QoS policies.
FASTDDS_EXPORTED_API ReturnCode_t unregister_type(const std::string &typeName)
Unregister a type in this participant.
FASTDDS_EXPORTED_API ReturnCode_t register_type(TypeSupport type, const std::string &type_name)
Register a type in this participant.
FASTDDS_EXPORTED_API ContentFilteredTopic * create_contentfilteredtopic(const std::string &name, Topic *related_topic, const std::string &filter_expression, const std::vector< std::string > &expression_parameters)
Create a ContentFilteredTopic in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t delete_contentfilteredtopic(const ContentFilteredTopic *a_contentfilteredtopic)
Deletes an existing ContentFilteredTopic.
FASTDDS_EXPORTED_API bool has_active_entities()
Check if the Participant has any Publisher, Subscriber or Topic.
FASTDDS_EXPORTED_API const DomainParticipantListener * get_listener() const
Allows accessing the DomainParticipantListener.
FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(const std::string &xml, TopicQos &qos) const
Fills the TopicQos with the first topic profile found in the provided XML.
FASTDDS_EXPORTED_API MultiTopic * create_multitopic(const std::string &name, const std::string &type_name, const std::string &subscription_expression, const std::vector< std::string > &expression_parameters)
Create a MultiTopic in this Participant.
FASTDDS_EXPORTED_API Topic * create_topic_with_profile(const std::string &topic_name, const std::string &type_name, const std::string &profile_name, ReturnCode_t &ret_code, TopicListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Topic in this Participant.
FASTDDS_EXPORTED_API ContentFilteredTopic * create_contentfilteredtopic(const std::string &name, Topic *related_topic, const std::string &filter_expression, const std::vector< std::string > &expression_parameters, const char *filter_class_name)
Create a ContentFilteredTopic in this Participant using a custom filter.
FASTDDS_EXPORTED_API ReturnCode_t get_discovered_topic_data(builtin::TopicBuiltinTopicData &topic_data, const InstanceHandle_t &topic_handle) const
Retrieves the Topic data of a discovered not ignored topic.
FASTDDS_EXPORTED_API ReturnCode_t get_discovered_topics(std::vector< InstanceHandle_t > &topic_handles) const
Retrieves the list of topics that have been discovered in the domain and are not "ignored".
FASTDDS_EXPORTED_API ReturnCode_t get_publisher_qos_from_profile(const std::string &profile_name, PublisherQos &qos) const
Fills the PublisherQos with the values of the XML profile.
FASTDDS_EXPORTED_API InstanceHandle_t get_instance_handle() const
Returns the DomainParticipant's handle.
FASTDDS_EXPORTED_API Subscriber * create_subscriber_with_profile(const std::string &profile_name, SubscriberListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Subscriber in this Participant.
FASTDDS_EXPORTED_API Subscriber * create_subscriber(const SubscriberQos &qos, ReturnCode_t &ret_code, SubscriberListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Subscriber in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t get_default_publisher_qos(PublisherQos &qos) const
This operation retrieves the default value of the Publisher QoS, that is, the QoS policies which will...
FASTDDS_EXPORTED_API ReturnCode_t delete_multitopic(const MultiTopic *a_multitopic)
Deletes an existing MultiTopic.
FASTDDS_EXPORTED_API ReturnCode_t set_listener(DomainParticipantListener *listener, const StatusMask &mask, const std::chrono::seconds timeout)
Modifies the DomainParticipantListener.
FASTDDS_EXPORTED_API TopicDescription * lookup_topicdescription(const std::string &topic_name) const
Looks up an existing, locally created TopicDescription, based on its name.
FASTDDS_EXPORTED_API rpc::Replier * create_service_replier(rpc::Service *service, const ReplierQos &replier_qos)
Create a RPC Replier in a given Service.
FASTDDS_EXPORTED_API ReturnCode_t register_type(TypeSupport type)
Register a type in this participant.
FASTDDS_EXPORTED_API ReturnCode_t get_default_publisher_qos_from_xml(const std::string &xml, PublisherQos &qos) const
Fills the PublisherQos with the default publisher profile found in the provided XML (if there is).
FASTDDS_EXPORTED_API const SubscriberQos & get_default_subscriber_qos() const
This operation retrieves the default value of the Subscriber QoS, that is, the QoS policies which wil...
FASTDDS_EXPORTED_API ReturnCode_t delete_service_replier(const std::string &service_name, rpc::Replier *replier)
Deletes an existing RPC Replier.
FASTDDS_EXPORTED_API ReturnCode_t set_listener(DomainParticipantListener *listener, const std::chrono::seconds timeout)
Modifies the DomainParticipantListener, sets the mask to StatusMask::all()
FASTDDS_EXPORTED_API rpc::Service * find_service(const std::string &service_name) const
Find a RPC service by name.
FASTDDS_EXPORTED_API ReturnCode_t get_subscriber_qos_from_profile(const std::string &profile_name, SubscriberQos &qos) const
Fills the SubscriberQos with the values of the XML profile.
FASTDDS_EXPORTED_API Topic * create_topic(const std::string &topic_name, const std::string &type_name, const TopicQos &qos, TopicListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Topic in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t delete_contained_entities()
Deletes all the entities that were created by means of the “create” methods.
FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_xml(const std::string &xml, TopicQos &qos, const std::string &profile_name) const
Fills the TopicQos with the topic profile with profile_name to be found in the provided XML.
FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_profile(const std::string &profile_name, TopicQos &qos, std::string &topic_name, std::string &topic_data_type) const
Fills the TopicQos with the values of the XML profile, and also its corresponding topic and data type...
FASTDDS_EXPORTED_API ReturnCode_t set_default_publisher_qos(const PublisherQos &qos)
This operation sets a default value of the Publisher QoS policies which will be used for newly create...
FASTDDS_EXPORTED_API ReturnCode_t enable() override
This operation enables the DomainParticipant.
FASTDDS_EXPORTED_API ReturnCode_t ignore_subscription(const InstanceHandle_t &handle)
Locally ignore a remote datareader.
FASTDDS_EXPORTED_API Publisher * create_publisher_with_profile(const std::string &profile_name, ReturnCode_t &ret_code, PublisherListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Publisher in this Participant.
FASTDDS_EXPORTED_API rpc::Service * create_service(const std::string &service_name, const std::string &service_type_name, ReturnCode_t &ret_code)
Create an enabled RPC service.
DomainParticipant(const StatusMask &mask=StatusMask::all())
FASTDDS_EXPORTED_API ReturnCode_t get_replier_qos_from_profile(const std::string &profile_name, ReplierQos &qos) const
Fills the ReplierQos with the values of the XML profile.
FASTDDS_EXPORTED_API ReturnCode_t get_qos(DomainParticipantQos &qos) const
This operation returns the value of the DomainParticipant QoS policies.
FASTDDS_EXPORTED_API MultiTopic * create_multitopic(const std::string &name, const std::string &type_name, const std::string &subscription_expression, const std::vector< std::string > &expression_parameters, ReturnCode_t &ret_code)
Create a MultiTopic in this Participant.
FASTDDS_EXPORTED_API Subscriber * create_subscriber(const SubscriberQos &qos, SubscriberListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Subscriber in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t get_default_topic_qos_from_xml(const std::string &xml, TopicQos &qos) const
Fills the TopicQos with the default topic profile found in the provided XML (if there is).
FASTDDS_EXPORTED_API ReturnCode_t get_requester_qos_from_xml(const std::string &xml, RequesterQos &qos) const
Fills the RequesterQos with the first requester profile found in the provided XML.
FASTDDS_EXPORTED_API const Subscriber * get_builtin_subscriber() const
Allows access to the builtin Subscriber.
FASTDDS_EXPORTED_API DomainId_t get_domain_id() const
This operation retrieves the domain_id used to create the DomainParticipant.
FASTDDS_EXPORTED_API ContentFilteredTopic * create_contentfilteredtopic(const std::string &name, Topic *related_topic, const std::string &filter_expression, const std::vector< std::string > &expression_parameters, const char *filter_class_name, ReturnCode_t &ret_code)
Create a ContentFilteredTopic in this Participant using a custom filter.
FASTDDS_EXPORTED_API Topic * create_topic(const std::string &topic_name, const std::string &type_name, const TopicQos &qos, ReturnCode_t &ret_code, TopicListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Topic in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t get_requester_qos_from_profile(const std::string &profile_name, RequesterQos &qos) const
Fills the RequesterQos with the values of the XML profile.
FASTDDS_EXPORTED_API std::vector< std::string > get_participant_names() const
Getter for the participant names.
FASTDDS_EXPORTED_API const TopicQos & get_default_topic_qos() const
This operation retrieves the default value of the Topic QoS, that is, the QoS policies that will be u...
FASTDDS_EXPORTED_API ContentFilteredTopic * create_contentfilteredtopic(const std::string &name, Topic *related_topic, const std::string &filter_expression, const std::vector< std::string > &expression_parameters, ReturnCode_t &ret_code)
Create a ContentFilteredTopic in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t delete_subscriber(const Subscriber *subscriber)
Deletes an existing Subscriber.
FASTDDS_EXPORTED_API Publisher * create_publisher_with_profile(const std::string &profile_name, PublisherListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Publisher in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t get_subscriber_qos_from_xml(const std::string &xml, SubscriberQos &qos, const std::string &profile_name) const
Fills the SubscriberQos with the subscriber profile with profile_name to be found in the provided XML...
friend class DomainParticipantImpl
Definition: DomainParticipant.hpp:1479
FASTDDS_EXPORTED_API Subscriber * create_subscriber_with_profile(const std::string &profile_name, ReturnCode_t &ret_code, SubscriberListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Subscriber in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t get_discovered_participants(std::vector< InstanceHandle_t > &participant_handles) const
Retrieves the list of DomainParticipants that have been discovered in the domain and are not "ignored...
FASTDDS_EXPORTED_API Publisher * create_publisher(const PublisherQos &qos, ReturnCode_t &ret_code, PublisherListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Publisher in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t get_topic_qos_from_profile(const std::string &profile_name, TopicQos &qos) const
Fills the TopicQos with the values of the XML profile.
FASTDDS_EXPORTED_API ReturnCode_t get_replier_qos_from_xml(const std::string &xml, ReplierQos &qos, const std::string &profile_name) const
Fills the ReplierQos with the replier profile with profile_name to be found in the provided XML.
FASTDDS_EXPORTED_API const fastdds::rtps::GUID_t & guid() const
Getter for the Participant GUID.
FASTDDS_EXPORTED_API ReturnCode_t get_publisher_qos_from_xml(const std::string &xml, PublisherQos &qos, const std::string &profile_name) const
Fills the PublisherQos with the publisher profile with profile_name to be found in the provided XML.
FASTDDS_EXPORTED_API ReturnCode_t get_default_topic_qos(TopicQos &qos) const
This operation retrieves the default value of the Topic QoS, that is, the QoS policies that will be u...
FASTDDS_EXPORTED_API ReturnCode_t delete_service(const rpc::Service *service)
Delete a registered RPC service.
FASTDDS_EXPORTED_API Topic * create_topic_with_profile(const std::string &topic_name, const std::string &type_name, const std::string &profile_name, TopicListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
Create a Topic in this Participant.
FASTDDS_EXPORTED_API ReturnCode_t delete_service_requester(const std::string &service_name, rpc::Requester *requester)
Deletes an existing RPC Requester.
FASTDDS_EXPORTED_API ReturnCode_t delete_topic(const Topic *topic)
Deletes an existing Topic.
FASTDDS_EXPORTED_API const PublisherQos & get_default_publisher_qos() const
This operation retrieves the default value of the Publisher QoS, that is, the QoS policies which will...
Class DomainParticipantListener, overrides behaviour towards certain events.
Definition: DomainParticipantListener.hpp:49
Class DomainParticipantQos, contains all the possible Qos that can be set for a determined participan...
Definition: DomainParticipantQos.hpp:42
The Entity class is the abstract base class for all the objects that support QoS policies,...
Definition: Entity.hpp:38
Class Publisher, used to send data to associated subscribers.
Definition: Publisher.hpp:61
Class PublisherListener, allows the end user to implement callbacks triggered by certain events.
Definition: PublisherListener.hpp:39
Class PublisherQos, containing all the possible Qos that can be set for a determined Publisher.
Definition: PublisherQos.hpp:39
Definition: ReplierQos.hpp:33
Definition: RequesterQos.hpp:33
StatusMask is a bitmap or bitset field.
Definition: StatusMask.hpp:48
static StatusMask all()
Get all StatusMasks.
Definition: StatusMask.hpp:104
Class Subscriber, contains the public API that allows the user to control the reception of messages.
Definition: Subscriber.hpp:66
Class SubscriberListener, it should be used by the end user to implement specific callbacks to certai...
Definition: SubscriberListener.hpp:41
Class SubscriberQos, contains all the possible Qos that can be set for a determined Subscriber.
Definition: SubscriberQos.hpp:38
Class TopicDescription, represents the fact that both publications and subscriptions are tied to a si...
Definition: TopicDescription.hpp:38
Class Topic, represents the fact that both publications and subscriptions are tied to a single data-t...
Definition: Topic.hpp:53
Class TopicListener, it should be used by the end user to implement specific callbacks to certain act...
Definition: TopicListener.hpp:37
Class TopicQos, containing all the possible Qos that can be set for a determined Topic.
Definition: TopicQos.hpp:40
Class TypeSupport used to provide the DomainRTPSParticipant with the methods to serialize,...
Definition: TypeSupport.hpp:47
Base class for a Replier in the RPC communication.
Definition: Replier.hpp:39
Base class for a Requester in the RPC communication.
Definition: Requester.hpp:39
Base class for a Service in the RPC communication.
Definition: Service.hpp:37
Definition: ServiceTypeSupport.hpp:27
Definition: DomainParticipant.hpp:46
uint32_t DomainId_t
Definition: Types.hpp:24
int32_t ReturnCode_t
Definition: DDSReturnCode.hpp:59
EndpointKind_t
Endpoint kind.
Definition: Types.hpp:65
The interface that a factory of IContentFilter objects should implement.
Definition: IContentFilterFactory.hpp:37
Structure Time_t, used to describe times at a DDS level.
Definition: Time_t.hpp:36
Definition: TopicBuiltinTopicData.hpp:32
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition: Guid.hpp:40
Struct InstanceHandle_t, used to contain the key for WITH_KEY topics.
Definition: InstanceHandle.hpp:154
Definition: ParticipantBuiltinTopicData.hpp:36