📄 dict_8h-source.html
字号:
00701 <span class="preprocessor"> public: \</span>00702 <span class="preprocessor"> cls(BOOL initialDeleteObjects = initDelObj) \</span>00703 <span class="preprocessor"> : cls##_PTemplate(initialDeleteObjects) { } \</span>00704 <span class="preprocessor"> virtual PObject * Clone() const \</span>00705 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>00706 <span class="preprocessor"></span>00707 <span class="preprocessor"></span>00708 <span class="preprocessor">#else // PHAS_TEMPLATES</span>00709 <span class="preprocessor"></span>00710 <a name="l00711"></a><a class="code" href="dict_8h.html#a0">00711</a> <span class="preprocessor">#define PSET(cls, K) \</span>00712 <span class="preprocessor"> class cls : public PAbstractSet { \</span>00713 <span class="preprocessor"> PCLASSINFO(cls, PAbstractSet); \</span>00714 <span class="preprocessor"> protected: \</span>00715 <span class="preprocessor"> inline cls(int dummy, const cls * c) \</span>00716 <span class="preprocessor"> : PAbstractSet(dummy, c) \</span>00717 <span class="preprocessor"> { reference->deleteObjects = c->reference->deleteObjects; } \</span>00718 <span class="preprocessor"> public: \</span>00719 <span class="preprocessor"> inline cls(BOOL initialDeleteObjects = FALSE) \</span>00720 <span class="preprocessor"> : PAbstractSet() { AllowDeleteObjects(initialDeleteObjects); } \</span>00721 <span class="preprocessor"> virtual PObject * Clone() const \</span>00722 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>00723 <span class="preprocessor"> inline void Include(const PObject * key) \</span>00724 <span class="preprocessor"> { Append((PObject *)key); } \</span>00725 <span class="preprocessor"> inline void Exclude(const PObject * key) \</span>00726 <span class="preprocessor"> { Remove(key); } \</span>00727 <span class="preprocessor"> inline BOOL operator[](const K & key) const \</span>00728 <span class="preprocessor"> { return AbstractContains(key); } \</span>00729 <span class="preprocessor"> inline BOOL Contains(const K & key) const \</span>00730 <span class="preprocessor"> { return AbstractContains(key); } \</span>00731 <span class="preprocessor"> virtual const K & GetKeyAt(PINDEX index) const \</span>00732 <span class="preprocessor"> { return (const K &)AbstractGetKeyAt(index); } \</span>00733 <span class="preprocessor"> }</span>00734 <span class="preprocessor"></span><a name="l00735"></a><a class="code" href="dict_8h.html#a1">00735</a> <span class="preprocessor">#define PDECLARE_SET(cls, K, initDelObj) \</span>00736 <span class="preprocessor"> PSET(cls##_PTemplate, K); \</span>00737 <span class="preprocessor"> PDECLARE_CLASS(cls, cls##_PTemplate) \</span>00738 <span class="preprocessor"> protected: \</span>00739 <span class="preprocessor"> inline cls(int dummy, const cls * c) \</span>00740 <span class="preprocessor"> : cls##_PTemplate(dummy, c) { } \</span>00741 <span class="preprocessor"> public: \</span>00742 <span class="preprocessor"> inline cls(BOOL initialDeleteObjects = initDelObj) \</span>00743 <span class="preprocessor"> : cls##_PTemplate() { AllowDeleteObjects(initialDeleteObjects); } \</span>00744 <span class="preprocessor"> virtual PObject * Clone() const \</span>00745 <span class="preprocessor"> { return PNEW cls(0, this); } \</span>00746 <span class="preprocessor"></span>00747 <span class="preprocessor"></span>00748 <span class="preprocessor">#endif // PHAS_TEMPLATES</span>00749 <span class="preprocessor"></span>00750 00751 <a class="code" href="dict_8h.html#a0">PSET</a>(POrdinalSet, <a class="code" href="classPOrdinalKey.html">POrdinalKey</a>);00752 00753 00755 <a name="l00758"></a><a class="code" href="classPAbstractDictionary.html">00758</a> <span class="keyword">class </span><a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a> : <span class="keyword">public</span> <a class="code" href="classPHashTable.html">PHashTable</a>00759 {00760 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>, <a class="code" href="classPHashTable.html">PHashTable</a>);00761 <span class="keyword">public</span>:00769 <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPAbstractDictionary.html#z99_0">PAbstractDictionary</a>();00771 00780 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPAbstractDictionary.html#z101_0">PrintOn</a>(00781 ostream &strm 00782 ) <span class="keyword">const</span>;00784 00795 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_0">Insert</a>(00796 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key, 00797 <a class="code" href="classPObject.html">PObject</a> * obj 00798 );00799 00806 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_1">InsertAt</a>(00807 PINDEX index, 00808 <a class="code" href="classPObject.html">PObject</a> * obj 00809 );00810 00820 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractDictionary.html#z103_2">RemoveAt</a>(00821 PINDEX index 00822 );00823 00832 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z103_3">SetAt</a>(00833 PINDEX index, 00834 <a class="code" href="classPObject.html">PObject</a> * val 00835 );00836 00844 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractDictionary.html#z103_4">GetAt</a>(00845 PINDEX index 00846 ) <span class="keyword">const</span>;00847 00859 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_5">GetObjectsIndex</a>(00860 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj 00861 ) <span class="keyword">const</span>;00862 00871 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPAbstractDictionary.html#z103_6">GetValuesIndex</a>(00872 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & obj 00873 ) <span class="keyword">const</span>;00875 00876 00887 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z105_0">SetDataAt</a>(00888 PINDEX index, 00889 <a class="code" href="classPObject.html">PObject</a> * obj 00890 );00891 00903 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z105_1">AbstractSetAt</a>(00904 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key, 00905 <a class="code" href="classPObject.html">PObject</a> * obj 00906 );00907 00917 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> & <a class="code" href="classPAbstractDictionary.html#z105_2">GetRefAt</a>(00918 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key 00919 ) <span class="keyword">const</span>;00920 00927 <span class="keyword">virtual</span> <a class="code" href="classPObject.html">PObject</a> * <a class="code" href="classPAbstractDictionary.html#z105_3">AbstractGetAt</a>(00928 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> & key 00929 ) <span class="keyword">const</span>;00931 00932 <span class="keyword">protected</span>:00933 <a class="code" href="object_8h.html#a2">PINLINE</a> <a class="code" href="classPAbstractDictionary.html#z99_0">PAbstractDictionary</a>(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a> * c);00934 00935 <span class="keyword">private</span>:00936 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPCollection.html#z75_0">Append</a>(00937 <a class="code" href="classPObject.html">PObject</a> * obj <span class="comment">// New object to place into the collection.</span>00938 );00939 <span class="comment">/* This function is meaningless and will assert.</span>00940 <span class="comment"></span>00941 <span class="comment"> @return</span>00942 <span class="comment"> Always zero.</span>00943 <span class="comment"> */</span>00944 00945 <span class="keyword">virtual</span> BOOL <a class="code" href="classPCollection.html#z75_3">Remove</a>(00946 <span class="keyword">const</span> <a class="code" href="classPObject.html">PObject</a> * obj <span class="comment">// Existing object to remove from the collection.</span>00947 );00948 <span class="comment">/* Remove the object from the collection. If the AllowDeleteObjects option</span>00949 <span class="comment"> is set then the object is also deleted.</span>00950 <span class="comment"></span>00951 <span class="comment"> Note that the comparison for searching for the object in collection is</span>00952 <span class="comment"> made by pointer, not by value. Thus the parameter must point to the</span>00953 <span class="comment"> same instance of the object that is in the collection.</span>00954 <span class="comment"></span>00955 <span class="comment"> @return</span>00956 <span class="comment"> TRUE if the object was in the collection.</span>00957 <span class="comment"> */</span>00958 00959 };00960 00961 00962 <span class="preprocessor">#ifdef PHAS_TEMPLATES</span>00963 <span class="preprocessor"></span>00971 <span class="keyword">template</span> <<span class="keyword">class</span> K, <span class="keyword">class</span> D> <span class="keyword">class </span>PDictionary : <span class="keyword">public</span> <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>00972 {00973 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PDictionary, <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>);00974 00975 <span class="keyword">public</span>:00984 PDictionary()00985 : <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>() { }00987 00994 <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>00995 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="object_8h.html#a18">PNEW</a> PDictionary(0, <span class="keyword">this</span>); }00997 01010 D & operator[](01011 <span class="keyword">const</span> K & key 01012 )<span class="keyword"> const</span>01013 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (D &)<a class="code" href="classPAbstractDictionary.html#z105_2">GetRefAt</a>(key); }01014 01023 BOOL Contains(01024 <span class="keyword">const</span> K & key 01025 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPHashTable.html#z93_0">AbstractContains</a>(key); }01026 01035 <span class="keyword">virtual</span> D * <a class="code" href="classPAbstractDictionary.html#z103_2">RemoveAt</a>(01036 <span class="keyword">const</span> K & key 01037 ) { D * obj = <a class="code" href="classPAbstractDictionary.html#z103_4">GetAt</a>(key); <a class="code" href="classPAbstractDictionary.html#z105_1">AbstractSetAt</a>(key, NULL); <span class="keywordflow">return</span> obj; }01038 01050 <span class="keyword">virtual</span> BOOL <a class="code" href="classPAbstractDictionary.html#z103_3">SetAt</a>(01051 <span class="keyword">const</span> K & key, <span class="comment">// Key for position in dictionary to add object.</span>01052 D * obj <span class="comment">// New object to put into the dictionary.</span>01053 ) { <span class="keywordflow">return</span> <a class="code" href="classPAbstractDictionary.html#z105_1">AbstractSetAt</a>(key, obj); }01054 01061 <span class="keyword">virtual</span> D * <a class="code" href="classPAbstractDictionary.html#z103_4">GetAt</a>(01062 <span class="keyword">const</span> K & key <span class="comment">// Key for position in dictionary to get object.</span>01063 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (D *)<a class="code" href="classPAbstractDictionary.html#z105_3">AbstractGetAt</a>(key); }01064 01076 <span class="keyword">const</span> K & GetKeyAt(01077 PINDEX index 01078 )<span class="keyword"> const</span>01079 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (<span class="keyword">const</span> K &)<a class="code" href="classPHashTable.html#z93_1">AbstractGetKeyAt</a>(index); }01080 01092 D & GetDataAt(01093 PINDEX index 01094 )<span class="keyword"> const</span>01095 <span class="keyword"> </span>{ <span class="keywordflow">return</span> (D &)<a class="code" href="classPHashTable.html#z93_2">AbstractGetDataAt</a>(index); }01097 01098 <span class="keyword">protected</span>:01099 PDictionary(<span class="keywordtype">int</span> dummy, <span class="keyword">const</span> PDictionary * c)01100 : <a class="code" href="classPAbstractDictionary.html">PAbstractDictionary</a>(dummy, c) { }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -