3 #include "g_cont_it_unspec.h"
9 template<
class T,
class REF,
class REF_C ,
class IT ,
class IT_C >
class base_cont;
10 template<
class T>
class cont_with_positioner;
12 template <
class T ,
class REF ,
class REF_C >
class it_base :
public ItUnspec
15 it_base(
const it_base&) : mRecipientP ( NULL ) , mIndex ( G_CONT_INDEX_NOT_VALID ) {}
18 typedef cont_with_positioner<REF> RecipientBase_t;
19 friend class cont_with_positioner<REF>;
20 template<
class,
class,
class,
class,
class>
friend class base_cont;
23 typedef REF_C RefConst_t;
27 virtual bool isIn ( )
const {
return ( mRecipientP != NULL && mRecipientP->mPositionerP->isIn(mIndex) ); }
28 virtual bool isMine (
const RecipientBase_t& aRecipient )
const {
return ( &aRecipient == mRecipientP ); }
29 virtual void toBegin ( ) { mIndex = mRecipientP->mPositionerP->first ( ); }
30 virtual void toEnd ( ) { mIndex = mRecipientP->mPositionerP->last ( ); }
31 virtual void forward ( GUint32_t inc = 1 ) { mRecipientP->mPositionerP->forward ( mIndex , inc ); }
32 virtual void backward ( GUint32_t dec = 1 ) { mRecipientP->mPositionerP->backward ( mIndex , dec ); }
34 virtual void moveOf (
int inc ) { (inc>0)?forward((GUint32_t)inc):backward((GUint32_t)-inc); }
35 virtual bool isNull ( )
const {
return ( mIndex == G_CONT_INDEX_NOT_VALID && mRecipientP == NULL ); }
37 bool operator == (
const it_base& aOther )
const {
return aOther.mIndex == mIndex; }
38 bool operator != (
const it_base& aOther )
const {
return !operator==(aOther); }
41 it_base ( ) : mRecipientP ( NULL ) , mIndex ( G_CONT_INDEX_NOT_VALID ) {}
43 virtual void mInit (
const RecipientBase_t& aRec , IterFrom_t aIterFrom );
44 virtual void mCopy (
const it_base& );
46 const RecipientBase_t* mRecipientP;
50 template <
class T ,
class REF ,
class REF_C >
void it_base<T,REF,REF_C>::mInit (
const RecipientBase_t& aRec , IterFrom_t aIterFrom )
56 case head: mIndex = aRec.mPositionerP->first ( );
break;
57 case tail: mIndex = aRec.mPositionerP->last ( );
break;
60 G_VERBOSE_MSG_L3(
"Init iterator recipient " << std::hex << (
int)mRecipientP << std::dec );
63 template <
class T ,
class REF ,
class REF_C >
void it_base <T,REF,REF_C>::mCopy (
const it_base<T,REF,REF_C>& aIt )
65 mRecipientP = aIt.mRecipientP;
Definition: g.mthread.ThreadSimpleEvent.h:5