GUIDOLib
1.7.7
Guido Engine Internal Documentation
|
1 #ifndef KF_IPointerList_H 2 #define KF_IPointerList_H 42 virtual void sort(
int comp(
const TYPE *,
const TYPE *) );
44 virtual void AddSortedHead(TYPE *,
int comp(
const TYPE *,
const TYPE *));
45 virtual void AddSortedTail(TYPE *,
int comp(
const TYPE *,
const TYPE *));
51 void DeleteData(GuidoPos pos);
76 GuidoPos pos = this->GetHeadPosition();
88 delete this->GetAt(pos);
100 template <
class TYPE>
103 GuidoPos pos = this->GetHeadPosition();
106 if ( data == this->GetAt(pos) )
113 template <
class TYPE>
116 GuidoPos pos = GetElementPos(data);
119 RemoveElementAt(pos);
125 template <
class TYPE>
134 template <
class TYPE>
142 GuidoPos pos = this->GetHeadPosition();
146 TYPE *t1 = this->GetNext(pos);
149 TYPE *t2 = this->GetAt(pos);
150 if ( comp(t1,t2) == 1)
165 if (this->fTail == 0)
167 this->fHead = list->
fHead;
168 this->fTail = list->
fTail;
169 this->fCount = list->
fCount;
171 else if (list->
fHead)
173 this->fTail->fNext = list->
fHead;
175 this->fTail = list->
fTail;
176 this->fCount += list->
fCount;
184 template <
class TYPE>
196 this->SetTailPosition(pos);
198 (*pnew)->SetHeadPosition((GuidoPos) node);
203 (*pnew)->SetHeadPosition((GuidoPos) this->fHead);
211 template <
class TYPE>
217 GuidoPos pos = this->GetHeadPosition();
220 myl->
AddTail(this->GetNext(pos));
228 template <
class TYPE>
233 GuidoPos pos = this->GetHeadPosition();
242 TYPE * tmp = this->GetAt(pos);
243 int res = comp(tmp,data);
259 template <
class TYPE>
263 GuidoPos pos = this->GetTailPosition();
272 TYPE * tmp = this->GetAt(pos);
273 int res = comp(tmp,data);
GuidoPos AddTail(TYPE data)
Definition: kf_list.h:78
GuidoPos AddHead(TYPE data)
Definition: kf_list.h:124
virtual void RemoveAll()
Definition: kf_ilist.h:94
virtual GuidoPos GetElementPos(const TYPE *data) const
Definition: kf_ilist.h:101
virtual void DumpListAtTail(KF_IPointerList< TYPE > *list)
Definition: kf_ilist.h:163
virtual int RemoveElement(TYPE *data)
Definition: kf_ilist.h:114
virtual void Cut(GuidoPos pos, KF_IPointerList< TYPE > **pnew)
Definition: kf_ilist.h:185
int ownselements
Definition: kf_ilist.h:48
virtual ~KF_IPointerList()
Definition: kf_ilist.h:27
virtual void sort()
Definition: kf_list.h:166
TYPE * GetNext(GuidoPos &pos) const
Definition: kf_list.h:105
void SetAt(GuidoPos pos, TYPE data)
Definition: kf_list.h:120
int fCount
Definition: kf_list.h:197
virtual void AddSortedTail(TYPE *, int comp(const TYPE *, const TYPE *))
Definition: kf_ilist.h:260
KF_ListNode * fPrev
Definition: kf_list.h:29
Definition: ARMusicalVoiceState.h:33
KF_ListNode * fNext
Definition: kf_list.h:28
virtual int getOwnership() const
Definition: kf_ilist.h:40
virtual KF_IPointerList< TYPE > * getCopy()
Definition: kf_ilist.h:212
GuidoPos AddElementAfter(GuidoPos pos, TYPE data)
Definition: kf_list.h:222
mynode * fTail
Definition: kf_list.h:196
KF_IPointerList(int p_ownselements=0)
Definition: kf_ilist.h:25
virtual void AddSortedHead(TYPE *, int comp(const TYPE *, const TYPE *))
Definition: kf_ilist.h:229
GuidoPos AddElementAt(GuidoPos pos, TYPE data)
Definition: kf_list.h:203
virtual void setOwnership(int p_ownselements)
Definition: kf_ilist.h:39
mynode * fHead
Definition: kf_list.h:195
virtual void RemoveAll()
Definition: kf_list.h:238
GuidoPos GetHeadPosition(void) const
Definition: kf_list.h:102
virtual void RemoveElementAt(GuidoPos pos)
Definition: kf_list.h:261
Definition: GRBreakMatrix.h:24
virtual void RemoveElementAt(GuidoPos pos)
Definition: kf_ilist.h:126