⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contain_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00454 00455 <a name="l00456"></a><a class="code" href="classPContainer_1_1Reference.html">00456</a>     <span class="keyword">class </span><a class="code" href="classPContainer_1_1Reference.html">Reference</a> {00457       <span class="keyword">public</span>:<a name="l00458"></a><a class="code" href="classPContainer_1_1Reference.html#a0">00458</a>         <span class="keyword">inline</span> <a class="code" href="classPContainer_1_1Reference.html#a0">Reference</a>(PINDEX initialSize)00459           : <a class="code" href="classPContainer_1_1Reference.html#m0">size</a>(initialSize), <a class="code" href="classPContainer_1_1Reference.html#m1">count</a>(1), <a class="code" href="classPContainer_1_1Reference.html#m2">deleteObjects</a>(TRUE) { }00460 <a name="l00461"></a><a class="code" href="classPContainer_1_1Reference.html#a1">00461</a>         <a class="code" href="classPContainer_1_1Reference.html#a0">Reference</a>(<span class="keyword">const</span> <a class="code" href="classPContainer_1_1Reference.html">Reference</a> &amp; ref)00462           : <a class="code" href="classPContainer_1_1Reference.html#m1">count</a>(1)00463         {  00464 <span class="preprocessor">#if PCONTAINER_USES_CRITSEC</span>00465 <span class="preprocessor"></span>          <a class="code" href="classPEnterAndLeave.html">PEnterAndLeave</a> m(((<a class="code" href="classPContainer_1_1Reference.html">Reference</a> &amp;)ref).critSec);00466 <span class="preprocessor">#endif</span>00467 <span class="preprocessor"></span>          <a class="code" href="classPContainer_1_1Reference.html#m0">size</a>          = ref.size; 00468           <a class="code" href="classPContainer_1_1Reference.html#m2">deleteObjects</a> = ref.deleteObjects; 00469         }00470 <a name="l00471"></a><a class="code" href="classPContainer_1_1Reference.html#m0">00471</a>         PINDEX   <a class="code" href="classPContainer_1_1Reference.html#m0">size</a>;         <span class="comment">// Size of what the container contains</span><a name="l00472"></a><a class="code" href="classPContainer_1_1Reference.html#m1">00472</a>         <a class="code" href="classPAtomicInteger.html">PAtomicInteger</a> <a class="code" href="classPContainer_1_1Reference.html#m1">count</a>;  <span class="comment">// reference count to the container content - guaranteed to be atomic</span><a name="l00473"></a><a class="code" href="classPContainer_1_1Reference.html#m2">00473</a>         BOOL <a class="code" href="classPContainer_1_1Reference.html#m2">deleteObjects</a>;    <span class="comment">// Used by PCollection but put here for efficiency</span>00474 <span class="preprocessor">#if PCONTAINER_USES_CRITSEC</span>00475 <span class="preprocessor"></span>        <a class="code" href="classPCriticalSection.html">PCriticalSection</a> critSec;00476 <span class="preprocessor">#endif</span>00477 <span class="preprocessor"></span>      <span class="keyword">private</span>:00478         <a class="code" href="classPContainer_1_1Reference.html">Reference</a> &amp; <a class="code" href="classPContainer.html#z67_2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classPContainer_1_1Reference.html">Reference</a> &amp;) 00479         { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }00480     } * <a class="code" href="classPContainer.html#n0">reference</a>;00481 };00482 00483 00484 <a name="l00532"></a><a class="code" href="contain_8h.html#a0">00532</a> <span class="preprocessor">#define PCONTAINERINFO(cls, par) \</span>00533 <span class="preprocessor">    PCLASSINFO(cls, par) \</span>00534 <span class="preprocessor">  public: \</span>00535 <span class="preprocessor">    cls(const cls &amp; c) : par(c) { CopyContents(c); } \</span>00536 <span class="preprocessor">    cls &amp; operator=(const cls &amp; c) \</span>00537 <span class="preprocessor">      { AssignContents(c); return *this; } \</span>00538 <span class="preprocessor">    virtual ~cls() { Destruct(); } \</span>00539 <span class="preprocessor">    virtual BOOL MakeUnique() \</span>00540 <span class="preprocessor">      { if(par::MakeUnique())return TRUE; CloneContents(this);return FALSE; } \</span>00541 <span class="preprocessor">  protected: \</span>00542 <span class="preprocessor">    cls(int dummy, const cls * c) : par(dummy, c) { CloneContents(c); } \</span>00543 <span class="preprocessor">    virtual void DestroyContents(); \</span>00544 <span class="preprocessor">    void CloneContents(const cls * c); \</span>00545 <span class="preprocessor">    void CopyContents(const cls &amp; c); \</span>00546 <span class="preprocessor">    virtual void AssignContents(const PContainer &amp; c) \</span>00547 <span class="preprocessor">      { par::AssignContents(c); CopyContents((const cls &amp;)c); }</span>00548 <span class="preprocessor"></span>00549 00551 <span class="comment">// Abstract collection of objects class</span>00552 <a name="l00584"></a><a class="code" href="classPCollection.html">00584</a> <span class="keyword">class </span><a class="code" href="classPCollection.html">PCollection</a> : <span class="keyword">public</span> <a class="code" href="classPContainer.html">PContainer</a>00585 {00586   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPCollection.html">PCollection</a>, <a class="code" href="classPContainer.html">PContainer</a>);00587 00588   <span class="keyword">public</span>:00593     <a class="code" href="classPCollection.html#z71_0">PCollection</a>(00594       PINDEX initialSize = 0  00595     );00597 00613     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPCollection.html#z73_0">PrintOn</a>(00614       ostream &amp;strm   00615     ) <span class="keyword">const</span>;00617 00629     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_0">Append</a>(00630       <a class="code" href="classPObject.html">PObject</a> * obj   00631     ) = 0;00632 00649     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_1">Insert</a>(00650       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; before,   00651       <a class="code" href="classPObject.html">PObject</a> * obj             00652     ) = 0;00653 00665     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_2">InsertAt</a>(00666       PINDEX index,   00667       <a class="code" href="classPObject.html">PObject</a> * obj   00668     ) = 0;00669 00679     <span class="keyword">virtual</span> BOOL <a class="code" href="classPCollection.html#z75_3">Remove</a>(00680       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj   00681     ) = 0;00682 00691     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPCollection.html#z75_4">RemoveAt</a>(00692       PINDEX index   00693     ) = 0;00694 00701     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPCollection.html#z75_5">RemoveAll</a>();00702 00716     <span class="keyword">virtual</span> BOOL <a class="code" href="classPCollection.html#z75_6">SetAt</a>(00717       PINDEX index,   00718       <a class="code" href="classPObject.html">PObject</a> * val   00719     ) = 0;00720 00726     <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPCollection.html#z75_7">GetAt</a>(00727       PINDEX index  00728     ) <span class="keyword">const</span> = 0;00729 00736     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_8">GetObjectsIndex</a>(00737       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj  00738     ) <span class="keyword">const</span> = 0;00739 00748     <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_9">GetValuesIndex</a>(00749       <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> &amp; obj  00750     ) <span class="keyword">const</span> = 0;00751 00765     <a class="code" href="object_8h.html#a2">PINLINE</a> <span class="keywordtype">void</span> <a class="code" href="classPCollection.html#z75_10">AllowDeleteObjects</a>(00766       BOOL yes = TRUE   00767     );00768 00772     <span class="keywordtype">void</span> <a class="code" href="classPCollection.html#z75_11">DisallowDeleteObjects</a>();00774 00775   <span class="keyword">protected</span>:00786     <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPCollection.html#z71_0">PCollection</a>(00787       <span class="keywordtype">int</span> dummy,        00788       <span class="keyword">const</span> <a class="code" href="classPCollection.html">PCollection</a> * coll  00789     );00790 };00791 00792 00793 00795 <span class="comment">// The abstract array class</span>00796 00797 <span class="preprocessor">#include &lt;<a class="code" href="array_8h.html">ptlib/array.h</a>&gt;</span>00798 00800 <span class="comment">// The abstract array class</span>00801 00802 <span class="preprocessor">#include &lt;<a class="code" href="lists_8h.html">ptlib/lists.h</a>&gt;</span>00803 00805 <span class="comment">// PString class (specialised version of PBASEARRAY(char))</span>00806 00807 <span class="preprocessor">#include &lt;<a class="code" href="dict_8h.html">ptlib/dict.h</a>&gt;</span>00808 00809 00811 <span class="comment">// PString class</span>00812 00813 <span class="preprocessor">#include &lt;<a class="code" href="pstring_8h.html">ptlib/pstring.h</a>&gt;</span>00814 00815 00816 00818 <span class="comment">// Fill in all the inline functions</span>00819 00820 <span class="preprocessor">#if P_USE_INLINES</span>00821 <span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="contain_8inl.html">ptlib/contain.inl</a>&gt;</span>00822 <span class="preprocessor">#endif</span>00823 <span class="preprocessor"></span>00824 <span class="preprocessor">#endif // _CONTAIN_H</span>00825 <span class="preprocessor"></span>00826 00827 <span class="comment">// End Of File ///////////////////////////////////////////////////////////////</span></pre></div><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:10 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -