📄 array_8h-source.html
字号:
00861 PINDEX length, 00862 BOOL dynamic = TRUE 00863 );00865 };00866 <span class="preprocessor">#endif</span>00867 <span class="preprocessor"></span><a class="code" href="array_8h.html#a2">PSCALAR_ARRAY</a>(<a class="code" href="classPWORDArray.html">PWORDArray</a>, WORD);00868 00869 00871 <span class="preprocessor">#ifdef DOC_PLUS_PLUS</span><a name="l00872"></a><a class="code" href="classPUnsignedArray.html">00872</a> <span class="preprocessor"></span><span class="keyword">class </span><a class="code" href="classPUnsignedArray.html">PUnsignedArray</a> : <span class="keyword">public</span> PBaseArray {00873 <span class="keyword">public</span>:00879 <a class="code" href="classPUnsignedArray.html#z41_0">PUnsignedArray</a>(00880 PINDEX initialSize = 0 00881 );00882 00885 <a class="code" href="classPUnsignedArray.html#z41_0">PUnsignedArray</a>(00886 <span class="keywordtype">unsigned</span> <span class="keyword">const</span> * buffer, 00887 PINDEX length, 00888 BOOL dynamic = TRUE 00889 );00891 };00892 <span class="preprocessor">#endif</span>00893 <span class="preprocessor"></span><a class="code" href="array_8h.html#a2">PSCALAR_ARRAY</a>(<a class="code" href="classPUnsignedArray.html">PUnsignedArray</a>, <span class="keywordtype">unsigned</span>);00894 00895 00897 <span class="preprocessor">#ifdef DOC_PLUS_PLUS</span>00898 <span class="preprocessor"></span><span class="keyword">class </span>PDWORDArray : <span class="keyword">public</span> PBaseArray {00899 <span class="keyword">public</span>:00905 PDWORDArray(00906 PINDEX initialSize = 0 00907 );00908 00911 PDWORDArray(00912 DWORD <span class="keyword">const</span> * buffer, 00913 PINDEX length, 00914 BOOL dynamic = TRUE 00915 );00917 <span class="preprocessor">#endif</span>00918 <span class="preprocessor"></span><a class="code" href="array_8h.html#a2">PSCALAR_ARRAY</a>(PDWORDArray, DWORD);00919 00920 00922 <span class="comment">// Linear array of objects</span>00923 00945 <span class="keyword">class </span>PArrayObjects : <span class="keyword">public</span> <a class="code" href="classPCollection.html">PCollection</a>00946 {00947 <a class="code" href="contain_8h.html#a0">PCONTAINERINFO</a>(PArrayObjects, <a class="code" href="classPCollection.html">PCollection</a>);00948 00949 <span class="keyword">public</span>:00958 <a class="code" href="object_8h.html#a2">PINLINE</a> PArrayObjects(00959 PINDEX initialSize = 0 00960 );00962 00995 <span class="keyword">virtual</span> Comparison Compare(00996 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj 00997 ) <span class="keyword">const</span>;00999 01002 01003 <span class="keyword">virtual</span> PINDEX GetSize() <span class="keyword">const</span>;01004 01013 <span class="keyword">virtual</span> BOOL SetSize(01014 PINDEX newSize 01015 );01017 01026 <span class="keyword">virtual</span> PINDEX Append(01027 <a class="code" href="classPObject.html">PObject</a> * obj 01028 );01029 01045 <span class="keyword">virtual</span> PINDEX Insert(01046 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & before, 01047 <a class="code" href="classPObject.html">PObject</a> * obj 01048 );01049 01060 <span class="keyword">virtual</span> PINDEX InsertAt(01061 PINDEX index, 01062 <a class="code" href="classPObject.html">PObject</a> * obj 01063 );01064 01073 <span class="keyword">virtual</span> BOOL Remove(01074 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 01075 );01076 01088 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * RemoveAt(01089 PINDEX index 01090 );01091 01099 <span class="keyword">virtual</span> BOOL SetAt(01100 PINDEX index, 01101 <a class="code" href="classPObject.html">PObject</a> * val 01102 );01103 01110 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * GetAt(01111 PINDEX index 01112 ) <span class="keyword">const</span>;01113 01121 <span class="keyword">virtual</span> PINDEX GetObjectsIndex(01122 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 01123 ) <span class="keyword">const</span>;01124 01134 <span class="keyword">virtual</span> PINDEX GetValuesIndex(01135 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj <span class="comment">// Object to find equal of.</span>01136 ) <span class="keyword">const</span>;01137 01144 <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveAll();01146 01147 <span class="keyword">protected</span>:01148 <a class="code" href="array_8h.html#a0">PBASEARRAY</a>(ObjPtrArray, <a class="code" href="classPObject.html">PObject</a> *);01149 ObjPtrArray * theArray;01150 };01151 01152 01153 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>01154 <span class="preprocessor"></span>01161 <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span>PArray : <span class="keyword">public</span> PArrayObjects01162 {01163 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PArray, PArrayObjects);01164 01165 <span class="keyword">public</span>:01174 PArray( 01175 PINDEX initialSize = 0 01176 ) : PArrayObjects(initialSize) { }01178 01184 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * Clone()<span class="keyword"> const</span>01185 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PArray(0, <span class="keyword">this</span>); }01187 01197 T & operator[](01198 PINDEX index 01199 )<span class="keyword"> const </span>{01200 <a class="code" href="classPObject.html">PObject</a> * obj = GetAt(index);01201 <a class="code" href="object_8h.html#a5">PAssert</a>(obj != NULL, <a class="code" href="object_8h.html#a70a46">PInvalidArrayElement</a>);01202 <span class="keywordflow">return</span> (T &)*obj;01203 }01205 01206 <span class="keyword">protected</span>:01207 PArray(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PArray * c) : PArrayObjects(dummy, c) { }01208 };01209 01210 01222 <span class="preprocessor">#define PARRAY(cls, T) typedef PArray<T> cls</span>01223 <span class="preprocessor"></span>01224 01237 <span class="preprocessor">#define PDECLARE_ARRAY(cls, T) \</span>01238 <span class="preprocessor"> PARRAY(cls##_PTemplate, T); \</span>01239 <span class="preprocessor"> PDECLARE_CLASS(cls, cls##_PTemplate) \</span>01240 <span class="preprocessor"> protected: \</span>01241 <span class="preprocessor"> inline cls(int dummy, const cls * c) \</span>01242 <span class="preprocessor"> : cls##_PTemplate(dummy, c) { } \</span>01243 <span class="preprocessor"> public: \</span>01244 <span class="preprocessor"> inline cls(PINDEX initialSize = 0) \</span>01245 <span class="preprocessor"> : cls##_PTemplate(initialSize) { } \</span>01246 <span class="preprocessor"> virtual PObject * Clone() const \</span>01247 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>01248 <span class="preprocessor"></span>01249 <span class="preprocessor"></span><span class="preprocessor">#else // PHAS_TEMPLATES</span>01250 <span class="preprocessor"></span>01251 01252 <span class="preprocessor">#define PARRAY(cls, T) \</span>01253 <span class="preprocessor"> class cls : public PArrayObjects { \</span>01254 <span class="preprocessor"> PCLASSINFO(cls, PArrayObjects); \</span>01255 <span class="preprocessor"> protected: \</span>01256 <span class="preprocessor"> inline cls(int dummy, const cls * c) \</span>01257 <span class="preprocessor"> : PArrayObjects(dummy, c) { } \</span>01258 <span class="preprocessor"> public: \</span>01259 <span class="preprocessor"> inline cls(PINDEX initialSize = 0) \</span>01260 <span class="preprocessor"> : PArrayObjects(initialSize) { } \</span>01261 <span class="preprocessor"> virtual PObject * Clone() const \</span>01262 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>01263 <span class="preprocessor"> inline T & operator[](PINDEX index) const\</span>01264 <span class="preprocessor"> { PObject * obj = GetAt(index); \</span>01265 <span class="preprocessor"> PAssert(obj != NULL, PInvalidArrayElement); \</span>01266 <span class="preprocessor"> </span><span class="comment">/* want to do to this, but gcc 3.0 complains --> return *(T *)obj; } */</span> \01267 return (T &)*obj; } \01268 }01269 01270 <span class="preprocessor">#define PDECLARE_ARRAY(cls, T) \</span>01271 <span class="preprocessor"> PARRAY(cls##_PTemplate, T); \</span>01272 <span class="preprocessor"> PDECLARE_CLASS(cls, cls##_PTemplate) \</span>01273 <span class="preprocessor"> protected: \</span>01274 <span class="preprocessor"> inline cls(int dummy, const cls * c) \</span>01275 <span class="preprocessor"> : cls##_PTemplate(dummy, c) { } \</span>01276 <span class="preprocessor"> public: \</span>01277 <span class="preprocessor"> inline cls(PINDEX initialSize = 0) \</span>01278 <span class="preprocessor"> : cls##_PTemplate(initialSize) { } \</span>01279 <span class="preprocessor"> virtual PObject * Clone() const \</span>01280 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>01281 <span class="preprocessor"></span>01282 <span class="preprocessor"></span><span class="preprocessor">#endif // PHAS_TEMPLATES</span>01283 <span class="preprocessor"></span>01284 01287 <span class="keyword">class </span>PBitArray : <span class="keyword">public</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a>01288 {01289 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PBitArray, <a class="code" href="classPBYTEArray.html">PBYTEArray</a>);01290 01291 <span class="keyword">public</span>:01296 PBitArray(01297 PINDEX initialSize = 0 01298 );01299 01302 PBitArray(01303 <span class="keyword">const</span> <span class="keywordtype">void</span> * buffer, 01304 PINDEX length, 01305 BOOL dynamic = TRUE 01306 );01308 01313 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * Clone() <span class="keyword">const</span>;01315 01324 <span class="keyword">virtual</span> PINDEX GetSize() <span class="keyword">const</span>;01325 01334 <span class="keyword">virtual</span> BOOL SetSize(01335 PINDEX newSize 01336 );01337 01344 BOOL SetAt(01345 PINDEX index, 01346 BOOL val 01347 );01348 01355 BOOL GetAt(01356 PINDEX index 01357 ) <span class="keyword">const</span>;01358 01367 <span class="keywordtype">void</span> Attach(01368 <span class="keyword">const</span> <span class="keywordtype">void</span> * buffer, 01369 PINDEX bufferSize 01370 );01371 01385 BYTE * GetPointer(01386 PINDEX minSize = 0 01387 );01389 01401 BOOL operator[](01402 PINDEX index 01403 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> GetAt(index); }01404 01410 PBitArray & operator+=(01411 PINDEX index 01412 ) { SetAt(index, TRUE); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }01413 01419 PBitArray & operator-=(01420 PINDEX index 01421 ) { SetAt(index, FALSE); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }01422 01434 BOOL Concatenate(01435 <span class="keyword">const</span> PBitArray & array 01436 );01438 };01439 01440 <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 + -