39 inline MonitorableIterBase(
const Monitorable&,IdxType startidx,
41 inline MonitorableIterBase(
const MonitorableIterBase&);
45 inline bool isEmpty()
const {
return size() < 1; }
46 inline size_type size()
const;
49 inline bool isForward()
const {
return dir_ == Forward; }
51 inline bool isValid()
const {
return isPresent(curidx_); }
52 inline bool atFirst()
const {
return curidx_ == startidx_; }
53 inline bool atLast()
const {
return curidx_ == stopidx_; }
54 inline IdxType
curIdx()
const {
return curidx_; }
55 inline bool isPresent(IdxType)
const;
58 virtual void reInit();
88 ITyp startidx,ITyp stopidx);
91 virtual void reInit();
92 virtual void retire();
110 template <
class ITyp>
116 ITyp startidx,ITyp stopidx);
120 {
return const_cast<Monitorable&
>(this->monitored()); }
126 inline void insertedAtCurrent();
127 inline void currentRemoved();
134 template <
class ITyp>
inline 136 ITyp startidx, ITyp stopidx )
138 , startidx_(startidx)
140 , dir_(startidx<=stopidx ? Forward : Backward)
153 template <
class ITyp>
inline 164 template <
class ITyp>
inline 174 template <
class ITyp>
inline 180 return idx <= startidx_ && idx >=
stopidx_;
184 template <
class ITyp>
inline typename 191 template <
class ITyp>
inline 198 template <
class ITyp>
inline 200 ITyp startidx, ITyp stopidx )
207 template <
class ITyp>
inline 216 template <
class ITyp>
inline 223 template <
class ITyp>
inline 231 template <
class ITyp>
inline 233 ITyp startidx, ITyp stopidx )
239 template <
class ITyp>
inline 247 template <
class ITyp>
inline 254 const_cast<ITyp&
>(this->
stopidx_)++;
260 template <
class ITyp>
inline 267 const_cast<ITyp&
>(this->
stopidx_)--;
bool isEmpty() const
Definition: monitoriter.h:45
Object that can be MT-safely monitored from cradle to grave.
Definition: monitorable.h:76
MonitorableIter4Write(Monitorable &, ITyp startidx, ITyp stopidx)
Definition: monitoriter.h:232
IdxType curIdx() const
Definition: monitoriter.h:54
virtual void reInit()
Definition: monitoriter.h:192
base class for non-const Monitorable iterator.
Definition: monitoriter.h:111
bool isPresent(IdxType) const
Definition: monitoriter.h:175
bool next()
Definition: monitoriter.h:165
protects a Monitorable against change.
Definition: monitorable.h:252
base class for const Monitorable iterator.
Definition: monitoriter.h:83
Definition: monitoriter.h:37
void currentRemoved()
Definition: monitoriter.h:261
MonitorableIter4Read(const Monitorable &, ITyp startidx, ITyp stopidx)
Definition: monitoriter.h:199
bool atFirst() const
Definition: monitoriter.h:52
size_type size() const
Definition: monitoriter.h:185
const Direction dir_
Definition: monitoriter.h:63
const Monitorable & obj_
Definition: monitoriter.h:62
bool isValid() const
Definition: monitoriter.h:51
bool atLast() const
Definition: monitoriter.h:53
IdxType size_type
Definition: monitoriter.h:36
virtual ~MonitorableIterBase()
Definition: monitoriter.h:42
#define mDefNoAssignmentOper(clss)
Definition: commondefs.h:131
MonitorLock ml_
Definition: monitoriter.h:96
virtual void reInit()
Definition: monitoriter.h:224
virtual void retire()
Definition: monitoriter.h:57
const Monitorable & monitored() const
Definition: monitoriter.h:43
Direction
Definition: monitoriter.h:37
MonitorableIterBase(const Monitorable &, IdxType startidx, IdxType stopidx)
Definition: monitoriter.h:135
virtual void retire()
Definition: monitoriter.h:217
Monitorable & edited()
Definition: monitoriter.h:119
const Monitorable & obj_
Definition: monitorable.h:289
base class for Monitorable iterators. Inherit from one of its subclasses.
Definition: monitoriter.h:31
#define mClass(module)
Definition: commondefs.h:161
ITyp IdxType
Definition: monitoriter.h:35
const IdxType startidx_
Definition: monitoriter.h:64
IdxType curidx_
Definition: monitoriter.h:67
void insertedAtCurrent()
Definition: monitoriter.h:248
const IdxType stopidx_
Definition: monitoriter.h:65
bool isForward() const
Definition: monitoriter.h:49