8 #ifndef OPENDDS_DCPS_INTERNAL_TOPIC_H 9 #define OPENDDS_DCPS_INTERNAL_TOPIC_H 13 #ifndef ACE_LACKS_PRAGMA_ONCE 35 void connect(InternalDataWriter_rch writer)
38 const std::pair<typename WriterSet::iterator, bool> p =
writers_.insert(writer);
41 for (
typename ReaderSet::const_iterator pos =
readers_.begin(), limit =
readers_.end(); pos != limit; ++pos) {
42 InternalDataReader_rch reader = pos->lock();
44 writer->add_reader(reader);
50 void connect(InternalDataReader_rch reader)
53 const std::pair<typename ReaderSet::iterator, bool> p =
readers_.insert(reader);
56 for (
typename WriterSet::const_iterator pos =
writers_.begin(), limit =
writers_.end(); pos != limit; ++pos) {
57 InternalDataWriter_rch writer = pos->lock();
59 writer->add_reader(reader);
70 for (
typename ReaderSet::const_iterator pos =
readers_.begin(), limit =
readers_.end(); pos != limit; ++pos) {
71 InternalDataReader_rch reader = pos->lock();
73 writer->remove_reader(reader);
84 for (
typename WriterSet::const_iterator pos =
writers_.begin(), limit =
writers_.end(); pos != limit; ++pos) {
85 InternalDataWriter_rch writer = pos->lock();
87 writer->remove_reader(reader);
94 typedef OPENDDS_SET(InternalDataWriter_wrch) WriterSet;
97 typedef OPENDDS_SET(InternalDataReader_wrch) ReaderSet;
108 #endif // OPENDDS_DCPS_INTERNAL_TOPIC_H RcHandle< InternalDataWriter< T > > InternalDataWriter_rch
void connect(InternalDataWriter_rch writer)
#define ACE_GUARD(MUTEX, OBJ, LOCK)
WeakRcHandle< InternalDataReader< T > > InternalDataReader_wrch
RcHandle< InternalDataReader< T > > InternalDataReader_rch
WeakRcHandle< InternalDataWriter< T > > InternalDataWriter_wrch
typedef OPENDDS_SET(InternalDataWriter_wrch) WriterSet
void connect(InternalDataReader_rch reader)
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
void disconnect(InternalDataWriter_rch writer)
void disconnect(InternalDataReader_rch reader)
The Internal API and Implementation of OpenDDS.