亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nameidpool.hpp

?? IBM的解析xml的工具Xerces的源代碼
?? HPP
字號:
/* * Copyright 1999-2000,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Log: NameIdPool.hpp,v $ * Revision 1.11  2004/09/23 07:10:13  amassari * Removed const from variable declaration (jira#1259) * * Revision 1.10  2004/09/08 13:56:22  peiyongz * Apache License Version 2.0 * * Revision 1.9  2004/01/29 11:48:46  cargilld * Code cleanup changes to get rid of various compiler diagnostic messages. * * Revision 1.8  2003/12/17 00:18:35  cargilld * Update to memory management so that the static memory manager (one used to call Initialize) is only for static data. * * Revision 1.7  2003/10/29 16:17:48  peiyongz * size() added * * Revision 1.6  2003/05/16 06:01:52  knoaman * Partial implementation of the configurable memory manager. * * Revision 1.5  2003/05/15 19:04:35  knoaman * Partial implementation of the configurable memory manager. * * Revision 1.4  2003/03/07 18:11:54  tng * Return a reference instead of void for operator= * * Revision 1.3  2002/12/04 02:32:43  knoaman * #include cleanup. * * Revision 1.2  2002/11/04 15:22:04  tng * C++ Namespace Support. * * Revision 1.1.1.1  2002/02/01 22:22:11  peiyongz * sane_include * * Revision 1.6  2000/09/09 00:11:48  andyh * Virtual Destructor Patch, submitted by Kirk Wylie * * Revision 1.5  2000/07/19 18:47:26  andyh * More Macintosh port tweaks, submitted by James Berry. * * Revision 1.4  2000/03/02 19:54:42  roddey * This checkin includes many changes done while waiting for the * 1.1.0 code to be finished. I can't list them all here, but a list is * available elsewhere. * * Revision 1.3  2000/02/24 20:05:24  abagchi * Swat for removing Log from API docs * * Revision 1.2  2000/02/06 07:48:02  rahulj * Year 2K copyright swat. * * Revision 1.1.1.1  1999/11/09 01:04:48  twl * Initial checkin * * Revision 1.3  1999/11/08 20:45:10  rahul * Swat for adding in Product name and CVS comment log variable. * */#if !defined(NAMEIDPOOL_HPP)#define NAMEIDPOOL_HPP#include <xercesc/util/XMemory.hpp>#include <xercesc/util/XMLString.hpp>#include <xercesc/util/PlatformUtils.hpp>XERCES_CPP_NAMESPACE_BEGIN////  Forward declare the enumerator so he can be our friend. Can you say//  friend? Sure...//template <class TElem> class NameIdPoolEnumerator;////  This class is provided to serve as the basis of many of the pools that//  are used by the scanner and validators. They often need to be able to//  store objects in such a way that they can be quickly accessed by the//  name field of the object, and such that each element added is assigned//  a unique id via which it can be accessed almost instantly.////  Object names are enforced as being unique, since that's what all these//  pools require. So its effectively a hash table in conjunction with an//  array of references into the hash table by id. Ids are assigned such that//  id N can be used to get the Nth element from the array of references.//  This provides very fast access by id.////  The way these pools are used, elements are never removed except when the//  whole thing is flushed. This makes it very easy to maintain the two//  access methods in sync.////  For efficiency reasons, the id refererence array is never flushed until//  the dtor. This way, it does not have to be regrown every time its reused.////  All elements are assumed to be owned by the pool!////  We have to have a bucket element structure to use to maintain the linked//  lists for each bucket. Because some of the compilers we have to support//  are totally brain dead, it cannot be a nested class as it should be.//template <class TElem> struct NameIdPoolBucketElem : public XMemory{public :    NameIdPoolBucketElem    (        TElem* const                            value        , NameIdPoolBucketElem<TElem>* const    next    );    ~NameIdPoolBucketElem();    TElem*                          fData;    NameIdPoolBucketElem<TElem>*    fNext;private:    // -----------------------------------------------------------------------    //  Unimplemented constructors and operators    // -----------------------------------------------------------------------    NameIdPoolBucketElem(const NameIdPoolBucketElem<TElem>&);    NameIdPoolBucketElem<TElem>& operator=(const NameIdPoolBucketElem<TElem>&);};template <class TElem> class NameIdPool : public XMemory{public :    // -----------------------------------------------------------------------    //  Contructors and Destructor    // -----------------------------------------------------------------------    NameIdPool    (        const   unsigned int    hashModulus        , const unsigned int    initSize = 128        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager    );    ~NameIdPool();    // -----------------------------------------------------------------------    //  Element management    // -----------------------------------------------------------------------    bool containsKey(const XMLCh* const key) const;    void removeAll();    // -----------------------------------------------------------------------    //  Getters    // -----------------------------------------------------------------------    TElem* getByKey(const XMLCh* const key);    const TElem* getByKey(const XMLCh* const key) const;    TElem* getById(const unsigned elemId);    const TElem* getById(const unsigned elemId) const;    MemoryManager* getMemoryManager() const;    // -----------------------------------------------------------------------    //  Putters    //    //  Dups are not allowed and cause an IllegalArgumentException. The id    //  of the new element is returned.    // -----------------------------------------------------------------------    unsigned int put(TElem* const valueToAdopt);protected :    // -----------------------------------------------------------------------    //  Declare the enumerator our friend so he can see our members    // -----------------------------------------------------------------------    friend class NameIdPoolEnumerator<TElem>;private :    // -----------------------------------------------------------------------    //  Unused constructors and operators    // -----------------------------------------------------------------------    NameIdPool(const NameIdPool<TElem>&);    NameIdPool<TElem>& operator=(const NameIdPool<TElem>&);    // -----------------------------------------------------------------------    //  Private helper methods    // -----------------------------------------------------------------------    NameIdPoolBucketElem<TElem>* findBucketElem    (        const XMLCh* const      key        ,     unsigned int&     hashVal    );    const NameIdPoolBucketElem<TElem>* findBucketElem    (        const   XMLCh* const    key        ,       unsigned int&   hashVal    )   const;    // -----------------------------------------------------------------------    //  Data members    //    //  fBucketList    //      This is the array that contains the heads of all of the list    //      buckets, one for each possible hash value.    //    //  fIdPtrs    //  fIdPtrsCount    //      This is the array of pointers to the bucket elements in order of    //      their assigned ids. So taking id N and referencing this array    //      gives you the element with that id. The count field indicates    //      the current size of this list. When fIdCounter+1 reaches this    //      value the list must be expanded.    //    //  fIdCounter    //      This is used to give out unique ids to added elements. It starts    //      at zero (which means empty), and is bumped up for each newly added    //      element. So the first element is 1, the next is 2, etc... This    //      means that this value is set to the top index of the fIdPtrs array.    //    //  fHashModulus    //      This is the modulus to use in this pool. The fBucketList array    //      is of this size. It should be a prime number.    // -----------------------------------------------------------------------    MemoryManager*                  fMemoryManager;    NameIdPoolBucketElem<TElem>**   fBucketList;    TElem**                         fIdPtrs;    unsigned int                    fIdPtrsCount;    unsigned int                    fIdCounter;    unsigned int                    fHashModulus;};////  An enumerator for a name id pool. It derives from the basic enumerator//  class, so that pools can be generically enumerated.//template <class TElem> class NameIdPoolEnumerator : public XMLEnumerator<TElem>, public XMemory{public :    // -----------------------------------------------------------------------    //  Constructors and Destructor    // -----------------------------------------------------------------------    NameIdPoolEnumerator    (                NameIdPool<TElem>* const    toEnum                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager    );    NameIdPoolEnumerator    (        const   NameIdPoolEnumerator<TElem>& toCopy    );    virtual ~NameIdPoolEnumerator();    // -----------------------------------------------------------------------    //  Public operators    // -----------------------------------------------------------------------    NameIdPoolEnumerator<TElem>& operator=    (        const   NameIdPoolEnumerator<TElem>& toAssign    );       // -----------------------------------------------------------------------    //  Enum interface    // -----------------------------------------------------------------------    bool hasMoreElements() const;    TElem& nextElement();    void Reset();    int  size()  const;private :    // -----------------------------------------------------------------------    //  Data Members    //    //  fCurIndex    //      This is the current index into the pool's id mapping array. This    //      is now we enumerate it.    //    //  fToEnum    //      The name id pool that is being enumerated.    // -----------------------------------------------------------------------    unsigned int            fCurIndex;    NameIdPool<TElem>*      fToEnum;    MemoryManager*          fMemoryManager;};XERCES_CPP_NAMESPACE_END#if !defined(XERCES_TMPLSINC)#include <xercesc/util/NameIdPool.c>#endif#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
3d动漫精品啪啪一区二区竹菊| 欧美一区二区三区在| 免费人成精品欧美精品| 国产精品三级久久久久三级| 欧美精品一级二级三级| 色综合中文字幕国产 | 国产精品久久久久影视| 欧美视频自拍偷拍| a4yy欧美一区二区三区| 国产综合色在线视频区| 首页综合国产亚洲丝袜| 亚洲欧美日韩小说| 久久久久久一级片| 91精品国模一区二区三区| 色偷偷成人一区二区三区91 | jvid福利写真一区二区三区| 另类的小说在线视频另类成人小视频在线| 1区2区3区精品视频| 久久精品一区二区三区四区| 日韩免费观看2025年上映的电影 | 国产女同性恋一区二区| 日韩你懂的在线观看| 欧美性大战xxxxx久久久| 97超碰欧美中文字幕| 丁香六月综合激情| 国产成人免费视| 精品一区二区成人精品| 另类小说欧美激情| 麻豆精品国产传媒mv男同| 香蕉久久夜色精品国产使用方法 | 亚洲一区二区在线免费观看视频| 国产精品日产欧美久久久久| 久久久亚洲午夜电影| 精品国产91亚洲一区二区三区婷婷 | 国产精品素人一区二区| 国产日韩欧美a| 国产欧美一区二区在线观看| 久久久久99精品一区| 国产日韩三级在线| 国产欧美日韩在线| 中文字幕第一区综合| 国产精品二三区| 亚洲欧洲性图库| 一区二区三区四区不卡视频| 一区二区三区日韩在线观看| 亚洲午夜免费福利视频| 婷婷国产v国产偷v亚洲高清| 日韩1区2区日韩1区2区| 麻豆国产91在线播放| 国产一区不卡精品| 国产91对白在线观看九色| 国产精品1区2区3区在线观看| 国产精品综合一区二区| 国产精品一区二区三区乱码| 国产成人午夜视频| 97久久超碰国产精品| 欧美视频一区二区三区四区| 3d动漫精品啪啪一区二区竹菊| 日韩欧美123| 欧美国产欧美综合| 亚洲精品一二三| 一区二区三区高清在线| 婷婷中文字幕综合| 国产乱对白刺激视频不卡| 懂色av一区二区夜夜嗨| 日本韩国一区二区三区| 91精品在线免费观看| 久久久久亚洲综合| 日韩毛片视频在线看| 日日夜夜精品视频天天综合网| 国内外精品视频| 91麻豆国产福利在线观看| 欧美日产国产精品| 国产欧美1区2区3区| 亚洲精品日韩综合观看成人91| 日韩av一区二区三区四区| 国产凹凸在线观看一区二区| 在线观看一区二区视频| 久久综合丝袜日本网| 亚洲精品高清在线| 国产原创一区二区三区| 色婷婷av一区| 久久综合九色综合欧美就去吻| 日韩理论在线观看| 极品销魂美女一区二区三区| 99国产精品久久久久久久久久| 日韩区在线观看| 亚洲欧洲av在线| 久久se这里有精品| 色婷婷久久一区二区三区麻豆| 精品区一区二区| 亚洲一二三级电影| 成人黄色综合网站| 精品欧美一区二区久久| 亚洲一级二级在线| 成人免费黄色大片| 日韩精品一区二区三区在线观看| 亚洲日本韩国一区| 国产一本一道久久香蕉| 在线91免费看| 亚洲欧美日韩在线不卡| 国产麻豆精品theporn| 4438亚洲最大| 亚洲综合免费观看高清在线观看| 国产成人免费视频网站| 欧美哺乳videos| 亚洲gay无套男同| 91麻豆自制传媒国产之光| 久久久亚洲精华液精华液精华液| 日本女优在线视频一区二区| 91免费看视频| 国产精品久久久久久久久久免费看| 久久99久久99小草精品免视看| 欧美色图在线观看| 亚洲天堂av老司机| 国产成人精品免费视频网站| 欧美成人伊人久久综合网| 图片区小说区区亚洲影院| 欧美性色黄大片| 一区二区欧美在线观看| 色哟哟在线观看一区二区三区| 国产精品麻豆一区二区| 国产成人精品一区二| 欧美草草影院在线视频| 久久精品久久精品| 欧美日本在线一区| 天天操天天干天天综合网| 欧美色图免费看| 亚洲一区二区美女| 欧美视频一区在线观看| 亚洲成人自拍偷拍| 欧美日韩一卡二卡| 亚洲第一福利视频在线| 欧美另类久久久品| 视频一区免费在线观看| 91精选在线观看| 日本不卡视频一二三区| 日韩欧美成人午夜| 国产制服丝袜一区| 国产女主播在线一区二区| 成人av影视在线观看| 中文字幕一区二区三区视频| 99在线精品一区二区三区| 1区2区3区精品视频| 日本精品一区二区三区四区的功能| 一区二区成人在线视频| 欧美日韩国产小视频在线观看| 日韩vs国产vs欧美| 精品欧美一区二区在线观看 | 91精品国产一区二区三区蜜臀| 欧美aaaaa成人免费观看视频| 日韩欧美专区在线| 狠狠狠色丁香婷婷综合久久五月| 久久新电视剧免费观看| aaa亚洲精品| 亚洲超碰精品一区二区| 日韩美女在线视频| 国产成人综合亚洲91猫咪| 亚洲欧美国产毛片在线| 欧美视频一区在线| 国内成人自拍视频| 日韩毛片视频在线看| 777午夜精品视频在线播放| 国产一区二区三区香蕉| 亚洲天天做日日做天天谢日日欢| 欧美日韩一级片网站| 国产揄拍国内精品对白| 亚洲丝袜美腿综合| 欧美一区二区三区视频在线观看| 韩国精品在线观看| 亚洲欧美另类综合偷拍| 91精品久久久久久久99蜜桃| 国产福利一区二区三区| 亚洲女人的天堂| 日韩欧美区一区二| 91麻豆精东视频| 蜜臀av性久久久久蜜臀aⅴ| 国产精品私房写真福利视频| 欧美日韩午夜精品| 国产91对白在线观看九色| 日韩精品欧美精品| 国产精品免费看片| 日韩一区二区三区视频在线| a4yy欧美一区二区三区| 看国产成人h片视频| 亚洲制服丝袜一区| 国产精品免费aⅴ片在线观看| 91精品国产一区二区三区香蕉| av中文字幕一区| 精品一区二区三区免费毛片爱| 亚洲日本va午夜在线电影| 日韩精品一区二区三区老鸭窝| 色哟哟精品一区| 国产精品一二三区在线| 日韩精品午夜视频| 一区二区三区国产精品| 中文天堂在线一区| 欧美v国产在线一区二区三区| 欧美色图在线观看| 一本大道av一区二区在线播放|