![]() |
OpenSplice ISO C++ 2 DCPS
v6.x
ISO C++ 2 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
|
Namespaces | |
detail | |
qos | |
Classes | |
class | AnyDataWriter |
Typeless base class for the typed DataWriter. More... | |
class | AnyDataWriterListener |
AnyDataWriter events Listener. More... | |
class | CoherentSet |
Class for RAII way of beginning/ending coherent publication sets. More... | |
class | DataWriter |
DataWriter allows the application to set the value of the sample to be published under a given Topic. More... | |
class | DataWriterListener |
DataWriter events Listener. More... | |
class | NoOpAnyDataWriterListener |
AnyDataWriter events Listener. More... | |
class | NoOpDataWriterListener |
DataWriter events Listener. More... | |
class | NoOpPublisherListener |
Publisher events Listener. More... | |
class | Publisher |
The Publisher acts on the behalf of one or several DataWriter objects that belong to it. More... | |
class | PublisherListener |
Publisher events Listener. More... | |
class | SuspendedPublication |
Class for RAII way of suspending/resuming publication. More... | |
Functions | |
template<typename WRITER , typename FwdIterator > | |
uint32_t | find (const dds::pub::Publisher &pub, const std::string &topic_name, FwdIterator begin, uint32_t max_size) |
template<typename WRITER , typename BinIterator > | |
uint32_t | find (const dds::pub::Publisher &pub, const std::string &topic_name, BinIterator begin) |
void | ignore (const dds::domain::DomainParticipant &dp, const dds::core::InstanceHandle &handle) |
template<typename FwdIterator > | |
void | ignore (const dds::domain::DomainParticipant &dp, FwdIterator begin, FwdIterator end) |
template<typename T > | |
const dds::topic::SubscriptionBuiltinTopicData | matched_subscription_data (const dds::pub::DataWriter< T > &dw, const ::dds::core::InstanceHandle &h) |
template<typename T > | |
::dds::core::InstanceHandleSeq | matched_subscriptions (const dds::pub::DataWriter< T > &dw) |
template<typename T , typename FwdIterator > | |
uint32_t | matched_subscriptions (const dds::pub::DataWriter< T > &dw, FwdIterator begin, uint32_t max_size) |
uint32_t dds::pub::find | ( | const dds::pub::Publisher & | pub, |
const std::string & | topic_name, | ||
FwdIterator | begin, | ||
uint32_t | max_size | ||
) |
This function retrieves previously-created DataWriters belonging to the Publisher that is attached to a Topic with a matching topic_name. If no such DataWriter exists, the operation will return an empty container.
pub | the Publisher to find an associated DataWriter for |
topic_name | the topic name |
begin | a iterator for a sequence in which to put found DataWriters |
max_size | the maximum number of DataWriters to return |
uint32_t dds::pub::find | ( | const dds::pub::Publisher & | pub, |
const std::string & | topic_name, | ||
BinIterator | begin | ||
) |
This function retrieves previously-created DataWriters belonging to the Publisher that is attached to a Topic with a matching topic_name. If no such DataWriter exists, the operation will return an empty container.
pub | the Publisher to find an associated DataWriter for |
topic_name | the topic name |
begin | a back insertion iterator for a sequence in which to put found DataWriters |
void dds::pub::ignore | ( | const dds::domain::DomainParticipant & | dp, |
const dds::core::InstanceHandle & | handle | ||
) |
Ignore publications.
This operation allows an application to instruct the Service to locally ignore a remote publication; a publication is defined by the association of a topic name, and user data and partition set on the Publisher. After this call, any data written related to that publication will be ignored.
The DataWriter to ignore is identified by the handle argument. This handle is the one that appears in the Sample retrieved when reading the data samples from the built-in DataReader to the "DCPSPublication" topic.
This operation is not required to be reversible. The Service offers no means to reverse it.
dp | the DomainParticipant for which the remote entity will be ignored |
handle | the InstanceHandle of the remote entity that has to be ignored |
dds::core::OutOfResourcesError | if the Service is unable to ignore the indicated participant because internal resource has been exhausted. |
void dds::pub::ignore | ( | const dds::domain::DomainParticipant & | dp, |
FwdIterator | begin, | ||
FwdIterator | end | ||
) |
Ignore publications.
This operation is not yet implemented. It is scheduled for a future release.
dp | the DomainParticipant for which the remote entity will be ignored |
begin | an iterator indicating the beginning of a sequence of InstanceHandles of the remote Entity that has to be ignored |
end | an iterator indicating the end of a sequence of InstanceHandles of the remote Entity that has to be ignored |
const dds::topic::SubscriptionBuiltinTopicData dds::pub::matched_subscription_data | ( | const dds::pub::DataWriter< T > & | dw, |
const ::dds::core::InstanceHandle & | h | ||
) |
This operation retrieves information on the specified subscription that is currently “associated” with the DataWriter. That is, a subscription with a matching Topic and compatible QoS that the application has not indicated should be “ignored” by means of the dds::sub::ignore operation on the DomainParticipant class.
The subscription_handle must correspond to a subscription currently associated with the DataWriter, otherwise the operation will fail and throw InvalidArgumentError. The operation dds::pub::matched_subscriptions can be used to find the subscriptions that are currently matched with the DataWriter.
The operation may fail if the infrastructure does not locally maintain the connectivity information. This is the case when OpenSplice is configured not to maintain discovery information in the Networking Service. (See the description for the NetworkingService/Discovery/enabled property in the Deployment Manual for more information about this subject.) In such cases the operation will throw UnsupportedError.
See also Built-in Topics and SubscriptionBuiltinTopicData .
dw | the DataWriter |
h | the InstanceHandle |
dds::core::Error | An internal error has occurred. |
dds::core::NullReferenceError | The entity was not properly created and references to dds::core::null. |
dds::core::AlreadyClosedError | The entity has already been closed. |
dds::core::NotEnabledError | The DataWriter has not yet been enabled. |
dds::core::UnsupportedError | OpenSplice is configured not to maintain the information about “associated” subscriptions. |
dds::core::InvalidArgumentError | Subscription not associated with the DataWriter. |
dds::core::OutOfResourcesError | The Data Distribution Service ran out of resources to complete this operation. |
::dds::core::InstanceHandleSeq dds::pub::matched_subscriptions | ( | const dds::pub::DataWriter< T > & | dw | ) |
This operation retrieves the list of subscriptions currently “associated” with the DataWriter. That is, subscriptions that have a matching Topic and compatible QoS that the application has not indicated should be “ignored” by means of the dds::sub::ignore operation on the DomainParticipant class.
The handles returned in the dds::core::InstanceHandleSeq are the ones that are used by the DDS implementation to locally identify the corresponding matched DataReader entities. You can access more detailed information about a particular subscription by passing its subscription_handle to either the dds::pub::matched_subscription_data operation or to the read with instance operation on the built-in reader for the “DCPSSubscription” topic.
The operation may fail if the infrastructure does not locally maintain the connectivity information. This is the case when OpenSplice is configured not to maintain discovery information in the Networking Service. (See the description for the NetworkingService/Discovery/enabled property in the Deployment Manual for more information about this subject.) In such cases the operation will throw UnsupportedError.
See Builtin Topics for more information.
dw | the DataWriter |
dds::core::Error | An internal error has occurred. |
dds::core::NullReferenceError | The entity was not properly created and references to dds::core::null. |
dds::core::AlreadyClosedError | The entity has already been closed. |
dds::core::NotEnabledError | The DataWriter has not yet been enabled. |
dds::core::UnsupportedError | OpenSplice is configured not to maintain the information about “associated” subscriptions. |
dds::core::OutOfResourcesError | The Data Distribution Service ran out of resources to complete this operation. |
uint32_t dds::pub::matched_subscriptions | ( | const dds::pub::DataWriter< T > & | dw, |
FwdIterator | begin, | ||
uint32_t | max_size | ||
) |
This operation retrieves the list of subscriptions currently “associated” with the DataWriter. That is, subscriptions that have a matching Topic and compatible QoS that the application has not indicated should be “ignored” by means of the dds::sub::ignore operation on the DomainParticipant class.
The handles returned in the dds::core::InstanceHandleSeq are the ones that are used by the DDS implementation to locally identify the corresponding matched DataReader entities. You can access more detailed information about a particular subscription by passing its subscription_handle to either the dds::pub::matched_subscription_data operation or to the read with instance operation on the built-in reader for the “DCPSSubscription” topic.
The operation may fail if the infrastructure does not locally maintain the connectivity information. This is the case when OpenSplice is configured not to maintain discovery information in the Networking Service. (See the description for the NetworkingService/Discovery/enabled property in the Deployment Manual for more information about this subject.) In such cases the operation will throw UnsupportedError.
See Builtin Topics for more information.
dw | the DataWriter |
begin | an iterator indicating the beginning of a sequence of instance handles in which to put the matched subscriptions |
max_size | the maximum number of matched subscriptions to return |
dds::core::Error | An internal error has occurred. |
dds::core::NullReferenceError | The entity was not properly created and references to dds::core::null. |
dds::core::AlreadyClosedError | The entity has already been closed. |
dds::core::NotEnabledError | The DataWriter has not yet been enabled. |
dds::core::UnsupportedError | OpenSplice is configured not to maintain the information about “associated” subscriptions. |
dds::core::OutOfResourcesError | The Data Distribution Service ran out of resources to complete this operation. |