📄 lists_8h-source.html
字号:
00213 00222 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_0">Append</a>(00223 <a class="code" href="classPObject.html">PObject</a> * obj 00224 );00225 00238 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_1">Insert</a>(00239 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & before, 00240 <a class="code" href="classPObject.html">PObject</a> * obj 00241 );00242 00250 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_2">InsertAt</a>(00251 PINDEX index, 00252 <a class="code" href="classPObject.html">PObject</a> * obj 00253 );00254 00261 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractList.html#z175_3">Remove</a>(00262 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 00263 );00264 00274 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractList.html#z175_4">RemoveAt</a>(00275 PINDEX index 00276 );00277 00289 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractList.html#z175_5">SetAt</a>(00290 PINDEX index, 00291 <a class="code" href="classPObject.html">PObject</a> * val 00292 );00293 00304 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractList.html#z175_6">ReplaceAt</a>(00305 PINDEX index, 00306 <a class="code" href="classPObject.html">PObject</a> * val 00307 );00308 00319 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractList.html#z175_7">GetAt</a>(00320 PINDEX index <span class="comment">// Index position in the collection of the object.</span>00321 ) <span class="keyword">const</span>;00322 00330 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_8">GetObjectsIndex</a>(00331 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 00332 ) <span class="keyword">const</span>;00333 00342 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractList.html#z175_9">GetValuesIndex</a>(00343 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj 00344 ) <span class="keyword">const</span>;00346 00347 00348 <span class="keyword">protected</span>:00359 <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPObject.html">PObject</a> & <a class="code" href="classPAbstractList.html#b0">GetReferenceAt</a>(00360 PINDEX index 00361 ) <span class="keyword">const</span>;00362 00372 BOOL <a class="code" href="classPAbstractList.html#b1">SetCurrent</a>(00373 PINDEX index 00374 ) <span class="keyword">const</span>;00375 <a name="l00376"></a><a class="code" href="classPAbstractList_1_1Element.html">00376</a> <span class="keyword">class </span><a class="code" href="classPAbstractList_1_1Element.html">Element</a> {00377 <span class="keyword">public</span>:<a name="l00378"></a><a class="code" href="classPAbstractList_1_1Element.html#l0">00378</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPAbstractList_1_1Info.html">Info</a>;00379 <a class="code" href="classPAbstractList_1_1Element.html#a0">Element</a>(<a class="code" href="classPObject.html">PObject</a> * theData);<a name="l00380"></a><a class="code" href="classPAbstractList_1_1Element.html#m0">00380</a> <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Element.html#m0">prev</a>;<a name="l00381"></a><a class="code" href="classPAbstractList_1_1Element.html#m1">00381</a> <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Element.html#m1">next</a>;<a name="l00382"></a><a class="code" href="classPAbstractList_1_1Element.html#m2">00382</a> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractList_1_1Element.html#m2">data</a>;00383 };00384 <a name="l00385"></a><a class="code" href="classPAbstractList_1_1Info.html">00385</a> <span class="keyword">class </span><a class="code" href="classPAbstractList_1_1Info.html">Info</a> {00386 <span class="keyword">public</span>:<a name="l00387"></a><a class="code" href="classPAbstractList_1_1Info.html#a0">00387</a> <a class="code" href="classPAbstractList_1_1Info.html#a0">Info</a>() { <a class="code" href="classPAbstractList_1_1Info.html#m0">head</a> = <a class="code" href="classPAbstractList_1_1Info.html#m1">tail</a> = <a class="code" href="classPAbstractList_1_1Info.html#m2">lastElement</a> = NULL; }<a name="l00388"></a><a class="code" href="classPAbstractList_1_1Info.html#m0">00388</a> <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Info.html#m0">head</a>;<a name="l00389"></a><a class="code" href="classPAbstractList_1_1Info.html#m1">00389</a> <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Info.html#m1">tail</a>;<a name="l00390"></a><a class="code" href="classPAbstractList_1_1Info.html#m2">00390</a> <a class="code" href="classPAbstractList_1_1Element.html">Element</a> * <a class="code" href="classPAbstractList_1_1Info.html#m2">lastElement</a>;<a name="l00391"></a><a class="code" href="classPAbstractList_1_1Info.html#m3">00391</a> PINDEX <a class="code" href="classPAbstractList_1_1Info.html#m3">lastIndex</a>;00392 } * <a class="code" href="classPAbstractList.html#n0">info</a>;00393 };00394 00395 00396 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>00397 <span class="preprocessor"></span>00404 <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span>PList : <span class="keyword">public</span> <a class="code" href="classPAbstractList.html">PAbstractList</a>00405 {00406 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PList, <a class="code" href="classPAbstractList.html">PAbstractList</a>);00407 00408 <span class="keyword">public</span>:00416 PList()00417 : <a class="code" href="classPAbstractList.html#z171_0">PAbstractList</a>() { }00419 00425 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPObject.html#z203_0">Clone</a>()<span class="keyword"> const</span>00426 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PList(0, <span class="keyword">this</span>); }00428 00442 T & operator[](PINDEX index)<span class="keyword"> const</span>00443 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (T &)<a class="code" href="classPAbstractList.html#b0">GetReferenceAt</a>(index); }00445 00446 <span class="keyword">protected</span>:00447 PList(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PList * c)00448 : <a class="code" href="classPAbstractList.html">PAbstractList</a>(dummy, c) { }00449 };00450 00451 00463 <span class="preprocessor">#define PLIST(cls, T) typedef PList<T> cls</span>00464 <span class="preprocessor"></span>00476 <span class="preprocessor">#define PDECLARE_LIST(cls, T) \</span>00477 <span class="preprocessor"> PLIST(cls##_PTemplate, T); \</span>00478 <span class="preprocessor"> PDECLARE_CLASS(cls, PList<T>) \</span>00479 <span class="preprocessor"> protected: \</span>00480 <span class="preprocessor"> cls(int dummy, const cls * c) \</span>00481 <span class="preprocessor"> : PList<T>(dummy, c) { } \</span>00482 <span class="preprocessor"> public: \</span>00483 <span class="preprocessor"> cls() \</span>00484 <span class="preprocessor"> : PList<T>() { } \</span>00485 <span class="preprocessor"> virtual PObject * Clone() const \</span>00486 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>00487 <span class="preprocessor"></span>00488 <span class="preprocessor"></span>00501 <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span>PQueue : <span class="keyword">public</span> <a class="code" href="classPAbstractList.html">PAbstractList</a>00502 {00503 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PQueue, <a class="code" href="classPAbstractList.html">PAbstractList</a>);00504 00505 <span class="keyword">public</span>:00514 PQueue()00515 : <a class="code" href="classPAbstractList.html">PAbstractList</a>() { <a class="code" href="classPCollection.html#z75_11">DisallowDeleteObjects</a>(); }00517 00523 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPObject.html#z203_0">Clone</a>()<span class="keyword"> const</span>00524 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PQueue(0, <span class="keyword">this</span>); }00526 00532 <span class="keyword">virtual</span> <span class="keywordtype">void</span> Enqueue(00533 T * obj 00534 ) { <a class="code" href="classPAbstractList.html#z175_0">PAbstractList::Append</a>(obj); }00540 <span class="keyword">virtual</span> T * Dequeue()00541 { <span class="keywordflow">if</span> (<a class="code" href="classPContainer.html#z69_0">GetSize</a>() == 0) <span class="keywordflow">return</span> NULL; <span class="keywordflow">else</span> <span class="keywordflow">return</span> (T *)<a class="code" href="classPAbstractList.html#z175_4">PAbstractList::RemoveAt</a>(0);}00543 00544 <span class="keyword">protected</span>:00545 PQueue(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PQueue * c)00546 : <a class="code" href="classPAbstractList.html">PAbstractList</a>(dummy, c)00547 { reference->deleteObjects = c->reference->deleteObjects; }00548 };00549 00550 00563 <span class="preprocessor">#define PQUEUE(cls, T) typedef PQueue<T> cls</span>00564 <span class="preprocessor"></span>00565 00578 <span class="preprocessor">#define PDECLARE_QUEUE(cls, T) \</span>00579 <span class="preprocessor"> PQUEUE(cls##_PTemplate, T); \</span>00580 <span class="preprocessor"> PDECLARE_CLASS(cls, cls##_PTemplate) \</span>00581 <span class="preprocessor"> protected: \</span>00582 <span class="preprocessor"> cls(int dummy, const cls * c) \</span>00583 <span class="preprocessor"> : cls##_PTemplate(dummy, c) { } \</span>00584 <span class="preprocessor"> public: \</span>00585 <span class="preprocessor"> cls() \</span>00586 <span class="preprocessor"> : cls##_PTemplate() { } \</span>00587 <span class="preprocessor"> virtual PObject * Clone() const \</span>00588 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>00589 <span class="preprocessor"></span>00590 <span class="preprocessor"></span>00603 <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span>PStack : <span class="keyword">public</span> <a class="code" href="classPAbstractList.html">PAbstractList</a>00604 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -