Topic(const dds::domain::DomainParticipant& dp, const std::string& name, const std::string& type_name) : dds::topic::detail::TopicDescription<T>(dp, name, type_name), dp_(dp), qos_(), listener_(0), mask_(dds::core::status::StatusMask()) { char* tn = ts_.get_type_name(); ts_.register_type(dp->dp_.get(), tn); qos(dp.default_topic_qos()); DDS::TopicQos tqos = convertQos(qos_); t_ = dp->dp_->create_topic(name.c_str(), tn, tqos, 0, mask_.to_ulong()); if (t_ == 0) throw dds::core::NullReferenceError( org::opensplice::core::exception_helper( OSPL_CONTEXT_LITERAL( "dds::core::NullReferenceError : Unable to create Topic! " "Nil return from ::create_topic"))); topic_ = org::opensplice::core::DDS_TOPIC_REF(t_, org::opensplice::core::TopicDeleter(dp->dp_)); }
void SubscriberDelegate::default_datareader_qos(const dds::sub::qos::DataReaderQos& qos) { DDS::ReturnCode_t result = sub_->set_default_datareader_qos(convertQos(qos)); org::opensplice::core::check_and_throw(result, OSPL_CONTEXT_LITERAL("Calling ::set_default_datareader_qos")); default_dr_qos_ = qos; }