21 #ifndef OSPL_DDS_SUB_DETAIL_SAMPLES_HOLDER_HPP_ 22 #define OSPL_DDS_SUB_DETAIL_SAMPLES_HOLDER_HPP_ 42 class LoanedSamplesHolder :
public SamplesHolder
49 void set_length(uint32_t len) {
50 this->samples_.delegate()->resize(len);
53 uint32_t get_length()
const {
57 SamplesHolder& operator++(
int)
65 return (*this->samples_.delegate())[this->index].delegate().data_ptr();
68 detail::SampleInfo* info()
70 return (*this->samples_.delegate())[this->index].delegate().info_ptr();
80 template <
typename T,
typename SamplesFWIterator>
81 class SamplesFWInteratorHolder :
public SamplesHolder
84 SamplesFWInteratorHolder(SamplesFWIterator& it) : iterator(it), length(0)
88 void set_length(uint32_t len) {
93 uint32_t get_length()
const {
97 SamplesHolder& operator++(
int)
105 return (*iterator).delegate().data_ptr();
108 detail::SampleInfo* info()
110 return (*iterator).delegate().info_ptr();
114 SamplesFWIterator& iterator;
119 template <
typename T,
typename SamplesBIIterator>
120 class SamplesBIIteratorHolder :
public SamplesHolder
123 SamplesBIIteratorHolder(SamplesBIIterator& it) : iterator(it), length(0)
127 void set_length(uint32_t len) {
131 uint32_t get_length()
const {
135 SamplesHolder& operator++(
int)
137 *this->iterator = this->sample;
144 return this->sample.delegate().data_ptr();
147 detail::SampleInfo* info()
149 return this->sample.delegate().info_ptr();
153 SamplesBIIterator& iterator;
This class encapsulates and automates the management of loaned samples.
This class encapsulates the data and info meta-data associated with DDS samples.