DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator Struct Reference

#include <IterableQueueModel.hpp>

Public Types

using iterator_category = std::forward_iterator_tag
using difference_type = std::ptrdiff_t
using value_type = T
using pointer = T*
using reference = T&

Public Member Functions

 Iterator (IterableQueueModel< T > &queue, uint32_t index)
reference operator* () const
pointer operator-> ()
Iterator & operator++ ()
Iterator operator++ (int amount)
bool good ()
uint32_t get_index ()

Private Attributes

IterableQueueModel< T > & m_queue
uint32_t m_index

Friends

bool operator== (const Iterator &a, const Iterator &b)
bool operator!= (const Iterator &a, const Iterator &b)

Detailed Description

template<class T>
struct dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator

Definition at line 213 of file IterableQueueModel.hpp.

Member Typedef Documentation

◆ difference_type

template<class T>
using dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::difference_type = std::ptrdiff_t

Definition at line 216 of file IterableQueueModel.hpp.

◆ iterator_category

template<class T>
using dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::iterator_category = std::forward_iterator_tag

Definition at line 215 of file IterableQueueModel.hpp.

◆ pointer

template<class T>
using dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::pointer = T*

Definition at line 218 of file IterableQueueModel.hpp.

◆ reference

template<class T>
using dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::reference = T&

Definition at line 219 of file IterableQueueModel.hpp.

◆ value_type

template<class T>
using dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::value_type = T

Definition at line 217 of file IterableQueueModel.hpp.

Constructor & Destructor Documentation

◆ Iterator()

Member Function Documentation

◆ get_index()

template<class T>
uint32_t dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::get_index ( )
inline

Definition at line 263 of file IterableQueueModel.hpp.

263{ return m_index; } // NOLINT(build/unsigned)

◆ good()

template<class T>
bool dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::good ( )
inline

Definition at line 253 of file IterableQueueModel.hpp.

◆ operator*()

template<class T>
reference dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::operator* ( ) const
inline

Definition at line 227 of file IterableQueueModel.hpp.

227{ return m_queue.records_[m_index]; }

◆ operator++() [1/2]

template<class T>
Iterator & dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::operator++ ( )
inline

Definition at line 229 of file IterableQueueModel.hpp.

230 {
231 if (good()) {
232 m_index++;
233 if (m_index == m_queue.size_) {
234 m_index = 0;
235 }
236 }
237 if (!good()) {
238 m_index = std::numeric_limits<uint32_t>::max(); // NOLINT(build/unsigned)
239 }
240 return *this;
241 }

◆ operator++() [2/2]

template<class T>
Iterator dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::operator++ ( int amount)
inline

Definition at line 242 of file IterableQueueModel.hpp.

243 {
244 Iterator tmp = *this;
245 for (int i = 0; i < amount; ++i) {
246 ++(*this);
247 }
248 return tmp;
249 }
Iterator(IterableQueueModel< T > &queue, uint32_t index)

◆ operator->()

template<class T>
pointer dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::operator-> ( )
inline

Definition at line 228 of file IterableQueueModel.hpp.

228{ return &m_queue.records_[m_index]; }

◆ operator!=

template<class T>
bool operator!= ( const Iterator & a,
const Iterator & b )
friend

Definition at line 251 of file IterableQueueModel.hpp.

251{ return a.m_index != b.m_index; }

◆ operator==

template<class T>
bool operator== ( const Iterator & a,
const Iterator & b )
friend

Definition at line 250 of file IterableQueueModel.hpp.

250{ return a.m_index == b.m_index; }

Member Data Documentation

◆ m_index

template<class T>
uint32_t dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::m_index
private

Definition at line 267 of file IterableQueueModel.hpp.

◆ m_queue

template<class T>
IterableQueueModel<T>& dunedaq::datahandlinglibs::IterableQueueModel< T >::Iterator::m_queue
private

Definition at line 266 of file IterableQueueModel.hpp.


The documentation for this struct was generated from the following file: