RTI Cloud Discovery Service Version 7.6.0
CloudDiscoveryServiceImpl.hpp
1
10#ifndef RTI_CDS_CLOUD_DISCOVERY_SERVICE_IMPL_HPP_
11#define RTI_CDS_CLOUD_DISCOVERY_SERVICE_IMPL_HPP_
12
13#include <dds/core/refmacros.hpp>
14#include <rti/core/detail/SelfReference.hpp>
15#include <rti/core/Exception.hpp>
16#include "clouddiscoveryservice/clouddiscoveryservice_service.h"
17
18#include <rti/cds/ServiceProperty.hpp>
19
20namespace rti { namespace cds {
21
22class CloudDiscoveryServiceImpl
23 : public rti::core::detail::RetainableType<CloudDiscoveryServiceImpl>
24{
25public:
26 explicit CloudDiscoveryServiceImpl(const ServiceProperty& property)
27 {
28 native_ = RTI_CDS_Service_new(&property.native());
29 rti::core::check_create_entity(native_, "CloudDiscoveryService");
30 }
31
32 CloudDiscoveryServiceImpl(const RTI_CDS_Property& property) : native_(NULL)
33 {
34 native_ = RTI_CDS_Service_new(&property);
35 rti::core::check_create_entity(native_, "CloudDiscoveryService");
36 }
37
38 CloudDiscoveryServiceImpl(RTI_CDS_Service *native) : native_(native)
39 {
40 rti::core::check_create_entity(native_, "CloudDiscoveryService");
41 }
42
43 ~CloudDiscoveryServiceImpl()
44 {
45 RTI_CDS_Service_delete(native_);
46 }
47
48 void start()
49 {
50 if (!RTI_CDS_Service_start(native_)) {
51 throw dds::core::Error("Error starting CloudDiscoveryService");
52 }
53 }
54
55 void stop()
56 {
57 if (!RTI_CDS_Service_stop(native_)) {
58 throw dds::core::Error("Error stopping CloudDiscoveryService");
59 }
60 }
61
62 bool is_started()
63 {
64 return RTI_CDS_Service_is_started(native_);
65 }
66
67 bool update_rtps_psk_secret_passphrase(
68 const std::string rtps_psk_secret_passphrase)
69 {
70 return RTI_CDS_Service_update_rtps_psk_secret_passphrase(
71 native_,
72 rtps_psk_secret_passphrase.c_str());
73 }
74
75 RTI_CDS_Service* native() const
76 {
77 return native_;
78 }
79
80private:
81 RTI_CDS_Service *native_;
82};
83
84}}
85
86#endif // RTI_CDS_CLOUD_DISCOVERY_SERVICE_IMPL_HPP_
Definition: CloudDiscoveryServiceImpl.hpp:20