20 #ifndef OMG_DDS_SUB_DETAIL_DATA_READER_HPP_ 21 #define OMG_DDS_SUB_DETAIL_DATA_READER_HPP_ 33 #include <org/opensplice/core/EntityDelegate.hpp> 34 #include <org/opensplice/sub/AnyDataReaderDelegate.hpp> 36 #include <org/opensplice/core/ScopedLock.hpp> 37 #include <org/opensplice/ForwardDeclarations.hpp> 53 class dds::sub::detail::DataReader :
public ::org::opensplice::sub::AnyDataReaderDelegate
57 typedef typename ::dds::core::smart_ptr_traits< DataReader<T> >::ref_type ref_type;
58 typedef typename ::dds::core::smart_ptr_traits< DataReader<T> >::weak_ref_type weak_ref_type;
75 virtual ~DataReader();
77 void init(ObjectDelegate::weak_ref_type weak_ref);
85 template<
typename SamplesFWIterator>
87 template<
typename SamplesFWIterator>
90 template<
typename SamplesBIIterator>
91 uint32_t
read(SamplesBIIterator samples);
92 template<
typename SamplesBIIterator>
93 uint32_t
take(SamplesBIIterator samples);
110 virtual void listener_notify(ObjectDelegate::ref_type source,
111 uint32_t triggerMask,
124 SELECT_MODE_READ_INSTANCE,
125 SELECT_MODE_READ_NEXT_INSTANCE,
126 SELECT_MODE_READ_WITH_CONDITION,
127 SELECT_MODE_READ_INSTANCE_WITH_CONDITION,
128 SELECT_MODE_READ_NEXT_INSTANCE_WITH_CONDITION
137 Selector(
typename DataReader<T>::ref_type dr);
149 template<
typename SamplesFWIterator>
151 template<
typename SamplesFWIterator>
155 template<
typename SamplesBIIterator>
156 uint32_t
read(SamplesBIIterator sbit);
157 template<
typename SamplesBIIterator>
158 uint32_t
take(SamplesBIIterator sbit);
160 SelectMode get_mode()
const;
162 DataReader<T> * get_reader()
const {
163 return this->reader.get();
167 friend class DataReader;
169 typename DataReader<T>::ref_type reader;
171 bool state_filter_is_set_;
173 uint32_t max_samples_;
178 class ManipulatorSelector:
public Selector
182 ManipulatorSelector(
typename DataReader<T>::ref_type dr);
185 void read_mode(
bool b);
204 template<
typename SamplesFWIterator>
205 uint32_t
read(SamplesFWIterator samples,
208 template<
typename SamplesFWIterator>
209 uint32_t
take(SamplesFWIterator samples,
213 template<
typename SamplesBIIterator>
214 uint32_t
read(SamplesBIIterator samples,
const Selector& selector);
216 template<
typename SamplesBIIterator>
217 uint32_t
take(SamplesBIIterator samples,
const Selector& selector);
DataReader events Listener.
A Subscriber is the object responsible for the actual reception of the data resulting from its subscr...
dds::sub::functors::MaxSamplesManipulatorFunctor max_samples(uint32_t n)
A TopicInstance encapsulates a dds::sub::Sample and its associated dds::core::InstanceHandle.
Topic is the most basic description of the data to be published and subscribed.
This class provides the basic mechanism for an application to specify Quality of Service attributes f...
ContentFilteredTopic is a specialization of TopicDescription that allows for content-based subscripti...
Query objects contain expressions that allow the application to specify a filter on the locally avail...
DataReader allows the applicatin to access published sample data.
Class to hold sample DataState information.
SELECTOR & take(SELECTOR &selector)
dds::sub::functors::NextInstanceManipulatorFunctor next_instance(const dds::core::InstanceHandle &h)
Class to hold the handle associated with in sample instance.
SELECTOR & read(SELECTOR &selector)
dds::sub::functors::StateFilterManipulatorFunctor state(const dds::sub::status::DataState &s)
StatusMask is a bitmap or bitset field.
This class encapsulates and automates the management of loaned samples.
dds::sub::functors::InstanceManipulatorFunctor instance(const dds::core::InstanceHandle &h)