/** * (c) Copyright, Real-Time Innovations, 2020. All rights reserved. * * No duplications, whole or partial, manual or electronic, may be made * without express written permission. Any such copies, or * revisions thereof, must display this notice unaltered. * This code contains trade secrets of Real-Time Innovations, Inc. */ #ifndef RTI_CDS_CLOUD_DISCOVERY_SERVICE_IMPL_HPP_ #define RTI_CDS_CLOUD_DISCOVERY_SERVICE_IMPL_HPP_ #include #include #include #include "clouddiscoveryservice/clouddiscoveryservice_service.h" #include namespace rti { namespace cds { class CloudDiscoveryServiceImpl : public rti::core::detail::RetainableType { public: explicit CloudDiscoveryServiceImpl(const ServiceProperty& property) { native_ = RTI_CDS_Service_new(&property.native()); rti::core::check_create_entity(native_, "CloudDiscoveryService"); } CloudDiscoveryServiceImpl(const RTI_CDS_Property& property) : native_(NULL) { native_ = RTI_CDS_Service_new(&property); rti::core::check_create_entity(native_, "CloudDiscoveryService"); } CloudDiscoveryServiceImpl(RTI_CDS_Service *native) : native_(native) { rti::core::check_create_entity(native_, "CloudDiscoveryService"); } ~CloudDiscoveryServiceImpl() { RTI_CDS_Service_delete(native_); } void start() { if (!RTI_CDS_Service_start(native_)) { throw dds::core::Error("Error starting CloudDiscoveryService"); } } void stop() { if (!RTI_CDS_Service_stop(native_)) { throw dds::core::Error("Error stopping CloudDiscoveryService"); } } bool is_started() { return RTI_CDS_Service_is_started(native_); } bool update_rtps_psk_secret_passphrase( const std::string rtps_psk_secret_passphrase) { return RTI_CDS_Service_update_rtps_psk_secret_passphrase( native_, rtps_psk_secret_passphrase.c_str()); } RTI_CDS_Service* native() const { return native_; } private: RTI_CDS_Service *native_; }; }} #endif // RTI_CDS_CLOUD_DISCOVERY_SERVICE_IMPL_HPP_