2020-02-17 22:19:57 +01:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=iso-8859-1" >
< title > XQilla Simple API Documentation< / title >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" >
< / head > < body >
< a style = "float:right;" href = "http://sourceforge.net/projects/xqilla" > < img src = "http://sflogo.sourceforge.net/sflogo.php?group_id=152021&type=2" border = "0" alt = "SourceForge.net Logo" / > < / a >
2020-02-17 22:24:47 +01:00
<!-- Generated by Doxygen 1.8.5 -->
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
2020-02-17 22:19:57 +01:00
< li > < a href = "namespaces.html" > < span > Namespaces< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Classes< / span > < / a > < / li >
< li class = "current" > < a href = "files.html" > < span > Files< / span > < / a > < / li >
< li > < a href = "examples.html" > < span > Examples< / span > < / a > < / li >
< / ul >
< / div >
2020-02-17 22:24:47 +01:00
< div id = "navrow2" class = "tabs2" >
< ul class = "tablist" >
< li > < a href = "files.html" > < span > File  List< / span > < / a > < / li >
< li > < a href = "globals.html" > < span > File  Members< / span > < / a > < / li >
2020-02-17 22:19:57 +01:00
< / ul >
< / div >
2020-02-17 22:24:47 +01:00
< div id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" > < a class = "el" href = "dir_e3266bbc227f825a287bdb912a8a79c0.html" > include< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7.html" > xqilla< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_21314fd8aa3f00deb23a3694b8fb0d10.html" > framework< / a > < / li > < / ul >
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > StringPool.hpp< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< a href = "StringPool_8hpp.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < div class = "line" > < a name = "l00001" > < / a > < span class = "lineno" > 1< / span >   < span class = "comment" > /*< / span > < / div >
< div class = "line" > < a name = "l00002" > < / a > < span class = "lineno" > 2< / span >   < span class = "comment" > * Copyright (c) 2001, 2008,< / span > < / div >
< div class = "line" > < a name = "l00003" > < / a > < span class = "lineno" > 3< / span >   < span class = "comment" > * DecisionSoft Limited. All rights reserved.< / span > < / div >
< div class = "line" > < a name = "l00004" > < / a > < span class = "lineno" > 4< / span >   < span class = "comment" > * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.< / span > < / div >
< div class = "line" > < a name = "l00005" > < / a > < span class = "lineno" > 5< / span >   < span class = "comment" > * < / span > < / div >
< div class = "line" > < a name = "l00006" > < / a > < span class = "lineno" > 6< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00007" > < / a > < span class = "lineno" > 7< / span >   < span class = "comment" > * Licensed under the Apache License, Version 2.0 (the " License" );< / span > < / div >
< div class = "line" > < a name = "l00008" > < / a > < span class = "lineno" > 8< / span >   < span class = "comment" > * you may not use this file except in compliance with the License.< / span > < / div >
< div class = "line" > < a name = "l00009" > < / a > < span class = "lineno" > 9< / span >   < span class = "comment" > * You may obtain a copy of the License at< / span > < / div >
< div class = "line" > < a name = "l00010" > < / a > < span class = "lineno" > 10< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00011" > < / a > < span class = "lineno" > 11< / span >   < span class = "comment" > * http://www.apache.org/licenses/LICENSE-2.0< / span > < / div >
< div class = "line" > < a name = "l00012" > < / a > < span class = "lineno" > 12< / span >   < span class = "comment" > *< / span > < / div >
< div class = "line" > < a name = "l00013" > < / a > < span class = "lineno" > 13< / span >   < span class = "comment" > * Unless required by applicable law or agreed to in writing, software< / span > < / div >
< div class = "line" > < a name = "l00014" > < / a > < span class = "lineno" > 14< / span >   < span class = "comment" > * distributed under the License is distributed on an " AS IS" BASIS,< / span > < / div >
< div class = "line" > < a name = "l00015" > < / a > < span class = "lineno" > 15< / span >   < span class = "comment" > * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.< / span > < / div >
< div class = "line" > < a name = "l00016" > < / a > < span class = "lineno" > 16< / span >   < span class = "comment" > * See the License for the specific language governing permissions and< / span > < / div >
< div class = "line" > < a name = "l00017" > < / a > < span class = "lineno" > 17< / span >   < span class = "comment" > * limitations under the License.< / span > < / div >
< div class = "line" > < a name = "l00018" > < / a > < span class = "lineno" > 18< / span >   < span class = "comment" > */< / span > < / div >
< div class = "line" > < a name = "l00019" > < / a > < span class = "lineno" > 19< / span >   < / div >
< div class = "line" > < a name = "l00020" > < / a > < span class = "lineno" > 20< / span >   < span class = "preprocessor" > #ifndef __STRINGPOOL_HPP< / span > < / div >
< div class = "line" > < a name = "l00021" > < / a > < span class = "lineno" > 21< / span >   < span class = "preprocessor" > < / span > < span class = "preprocessor" > #define __STRINGPOOL_HPP< / span > < / div >
< div class = "line" > < a name = "l00022" > < / a > < span class = "lineno" > 22< / span >   < span class = "preprocessor" > < / span > < / div >
< div class = "line" > < a name = "l00023" > < / a > < span class = "lineno" > 23< / span >   < span class = "preprocessor" > #include < xqilla/framework/XQillaExport.hpp> < / span > < / div >
< div class = "line" > < a name = "l00024" > < / a > < span class = "lineno" > 24< / span >   < span class = "preprocessor" > #include < < a class = "code" href = "MemoryManager_8hpp.html" > xercesc/framework/MemoryManager.hpp< / a > > < / span > < / div >
< div class = "line" > < a name = "l00025" > < / a > < span class = "lineno" > 25< / span >   < span class = "preprocessor" > #include < memory> < / span > < / div >
< div class = "line" > < a name = "l00026" > < / a > < span class = "lineno" > 26< / span >   < span class = "preprocessor" > #include < cstring> < / span > < / div >
< div class = "line" > < a name = "l00027" > < / a > < span class = "lineno" > 27< / span >   < span class = "comment" > //Added so xqilla will compile under CC on Solaris< / span > < / div >
< div class = "line" > < a name = "l00028" > < / a > < span class = "lineno" > 28< / span >   < span class = "preprocessor" > #include < string> < / span > < / div >
< div class = "line" > < a name = "l00029" > < / a > < span class = "lineno" > 29< / span >   < span class = "comment" > // Added so xqilla will compile on SunOS 10 using STLPort< / span > < / div >
< div class = "line" > < a name = "l00030" > < / a > < span class = "lineno" > 30< / span >   < span class = "preprocessor" > #include < memory.h> < / span > < / div >
< div class = "line" > < a name = "l00031" > < / a > < span class = "lineno" > 31< / span >   < / div >
< div class = "line" > < a name = "l00032" > < / a > < span class = "lineno" > < a class = "line" href = "classStringPool.html" > 32< / a > < / span >   < span class = "keyword" > class < / span > XQILLA_API < a class = "code" href = "classStringPool.html" > StringPool< / a > < / div >
< div class = "line" > < a name = "l00033" > < / a > < span class = "lineno" > 33< / span >   {< / div >
< div class = "line" > < a name = "l00034" > < / a > < span class = "lineno" > 34< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l00035" > < / a > < span class = "lineno" > 35< / span >   < a class = "code" href = "classStringPool.html" > StringPool< / a > (XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm);< / div >
< div class = "line" > < a name = "l00036" > < / a > < span class = "lineno" > 36< / span >   ~< a class = "code" href = "classStringPool.html" > StringPool< / a > ();< / div >
< div class = "line" > < a name = "l00037" > < / a > < span class = "lineno" > 37< / span >   < / div >
< div class = "line" > < a name = "l00039" > < / a > < span class = "lineno" > 39< / span >   < span class = "keyword" > const< / span > XMLCh* getPooledString(< span class = "keyword" > const< / span > XMLCh *src);< / div >
< div class = "line" > < a name = "l00041" > < / a > < span class = "lineno" > 41< / span >   < span class = "keyword" > const< / span > XMLCh* getPooledString(< span class = "keyword" > const< / span > XMLCh *src, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > length);< / div >
< div class = "line" > < a name = "l00043" > < / a > < span class = "lineno" > 43< / span >   < span class = "keyword" > const< / span > XMLCh* getPooledString(< span class = "keyword" > const< / span > < span class = "keywordtype" > char< / span > *src);< / div >
< div class = "line" > < a name = "l00044" > < / a > < span class = "lineno" > 44< / span >   < / div >
< div class = "line" > < a name = "l00045" > < / a > < span class = "lineno" > < a class = "line" href = "classStringPool.html#af6d24d45f310175362ebd842c2123dac" > 45< / a > < / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > < a class = "code" href = "classStringPool.html#af6d24d45f310175362ebd842c2123dac" > getCount< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > _count; }< / div >
< div class = "line" > < a name = "l00046" > < / a > < span class = "lineno" > < a class = "line" href = "classStringPool.html#ac3692bf7844a594db61f40c5dd9d63a3" > 46< / a > < / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > < a class = "code" href = "classStringPool.html#ac3692bf7844a594db61f40c5dd9d63a3" > getHits< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > _hits; }< / div >
< div class = "line" > < a name = "l00047" > < / a > < span class = "lineno" > < a class = "line" href = "classStringPool.html#a241899aef5a9ad993d7270a3ed849efa" > 47< / a > < / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > < a class = "code" href = "classStringPool.html#a241899aef5a9ad993d7270a3ed849efa" > getMisses< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > _misses; }< / div >
< div class = "line" > < a name = "l00048" > < / a > < span class = "lineno" > < a class = "line" href = "classStringPool.html#a47d21c75962c61516daf6b7276fba8dd" > 48< / a > < / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > < a class = "code" href = "classStringPool.html#a47d21c75962c61516daf6b7276fba8dd" > getTooBig< / a > ()< span class = "keyword" > const < / span > { < span class = "keywordflow" > return< / span > _toobig; }< / div >
< div class = "line" > < a name = "l00049" > < / a > < span class = "lineno" > 49< / span >   < span class = "keywordtype" > void< / span > dumpStatistics() < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00050" > < / a > < span class = "lineno" > 50< / span >   < / div >
< div class = "line" > < a name = "l00051" > < / a > < span class = "lineno" > 51< / span >   < span class = "keyword" > private< / span > :< / div >
< div class = "line" > < a name = "l00052" > < / a > < span class = "lineno" > 52< / span >   < a class = "code" href = "classStringPool.html" > StringPool< / a > (< span class = "keyword" > const< / span > < a class = "code" href = "classStringPool.html" > StringPool< / a > & );< / div >
< div class = "line" > < a name = "l00053" > < / a > < span class = "lineno" > 53< / span >   < a class = "code" href = "classStringPool.html" > StringPool< / a > & operator=(< span class = "keyword" > const< / span > < a class = "code" href = "classStringPool.html" > StringPool< / a > & );< / div >
< div class = "line" > < a name = "l00054" > < / a > < span class = "lineno" > 54< / span >   < / div >
< div class = "line" > < a name = "l00055" > < / a > < span class = "lineno" > 55< / span >   < span class = "keyword" > static< / span > < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > hash(< span class = "keyword" > const< / span > XMLCh *v, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > length);< / div >
< div class = "line" > < a name = "l00056" > < / a > < span class = "lineno" > 56< / span >   < span class = "keyword" > const< / span > XMLCh *replicate(< span class = "keyword" > const< / span > XMLCh *v, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > length) < span class = "keyword" > const< / span > ;< / div >
< div class = "line" > < a name = "l00057" > < / a > < span class = "lineno" > 57< / span >   < span class = "keywordtype" > void< / span > resize();< / div >
< div class = "line" > < a name = "l00058" > < / a > < span class = "lineno" > 58< / span >   < / div >
< div class = "line" > < a name = "l00059" > < / a > < span class = "lineno" > 59< / span >   < span class = "keyword" > class < / span > Bucket< / div >
< div class = "line" > < a name = "l00060" > < / a > < span class = "lineno" > 60< / span >   {< / div >
< div class = "line" > < a name = "l00061" > < / a > < span class = "lineno" > 61< / span >   < span class = "keyword" > public< / span > :< / div >
< div class = "line" > < a name = "l00062" > < / a > < span class = "lineno" > 62< / span >   Bucket(< span class = "keyword" > const< / span > XMLCh *v, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > l, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > h, Bucket *n)< / div >
< div class = "line" > < a name = "l00063" > < / a > < span class = "lineno" > 63< / span >   : value(v), length(l), hashValue(h), next(n) {}< / div >
< div class = "line" > < a name = "l00064" > < / a > < span class = "lineno" > 64< / span >   < / div >
< div class = "line" > < a name = "l00065" > < / a > < span class = "lineno" > 65< / span >   < span class = "keyword" > const< / span > XMLCh *value;< / div >
< div class = "line" > < a name = "l00066" > < / a > < span class = "lineno" > 66< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > length;< / div >
< div class = "line" > < a name = "l00067" > < / a > < span class = "lineno" > 67< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > hashValue;< / div >
< div class = "line" > < a name = "l00068" > < / a > < span class = "lineno" > 68< / span >   Bucket *next;< / div >
< div class = "line" > < a name = "l00069" > < / a > < span class = "lineno" > 69< / span >   };< / div >
< div class = "line" > < a name = "l00070" > < / a > < span class = "lineno" > 70< / span >   < / div >
< div class = "line" > < a name = "l00071" > < / a > < span class = "lineno" > 71< / span >   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm;< / div >
< div class = "line" > < a name = "l00072" > < / a > < span class = "lineno" > 72< / span >   Bucket **_bucketList;< / div >
< div class = "line" > < a name = "l00073" > < / a > < span class = "lineno" > 73< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > _modulus;< / div >
< div class = "line" > < a name = "l00074" > < / a > < span class = "lineno" > 74< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > _count;< / div >
< div class = "line" > < a name = "l00075" > < / a > < span class = "lineno" > 75< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > _hits;< / div >
< div class = "line" > < a name = "l00076" > < / a > < span class = "lineno" > 76< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > _misses;< / div >
< div class = "line" > < a name = "l00077" > < / a > < span class = "lineno" > 77< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > _toobig;< / div >
< div class = "line" > < a name = "l00078" > < / a > < span class = "lineno" > 78< / span >   };< / div >
< div class = "line" > < a name = "l00079" > < / a > < span class = "lineno" > 79< / span >   < / div >
< div class = "line" > < a name = "l00080" > < / a > < span class = "lineno" > 80< / span >   < span class = "keyword" > inline< / span > < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > StringPool::hash(< span class = "keyword" > const< / span > XMLCh *v, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > length)< / div >
< div class = "line" > < a name = "l00081" > < / a > < span class = "lineno" > 81< / span >   {< / div >
< div class = "line" > < a name = "l00082" > < / a > < span class = "lineno" > 82< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > hashVal = 0;< / div >
< div class = "line" > < a name = "l00083" > < / a > < span class = "lineno" > 83< / span >   < span class = "keywordflow" > while< / span > (length) {< / div >
< div class = "line" > < a name = "l00084" > < / a > < span class = "lineno" > 84< / span >   hashVal += (hashVal * 37) + (hashVal > > 24) + (< span class = "keywordtype" > unsigned< / span > int)(*v);< / div >
< div class = "line" > < a name = "l00085" > < / a > < span class = "lineno" > 85< / span >   ++v;< / div >
< div class = "line" > < a name = "l00086" > < / a > < span class = "lineno" > 86< / span >   --length;< / div >
< div class = "line" > < a name = "l00087" > < / a > < span class = "lineno" > 87< / span >   }< / div >
< div class = "line" > < a name = "l00088" > < / a > < span class = "lineno" > 88< / span >   < span class = "keywordflow" > return< / span > hashVal;< / div >
< div class = "line" > < a name = "l00089" > < / a > < span class = "lineno" > 89< / span >   }< / div >
< div class = "line" > < a name = "l00090" > < / a > < span class = "lineno" > 90< / span >   < / div >
< div class = "line" > < a name = "l00091" > < / a > < span class = "lineno" > 91< / span >   < span class = "keyword" > inline< / span > < span class = "keyword" > const< / span > XMLCh *StringPool::replicate(< span class = "keyword" > const< / span > XMLCh *v, < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > length)< span class = "keyword" > const< / span > < / div >
< div class = "line" > < a name = "l00092" > < / a > < span class = "lineno" > 92< / span >   < span class = "keyword" > < / span > {< / div >
< div class = "line" > < a name = "l00093" > < / a > < span class = "lineno" > 93< / span >   < span class = "keywordtype" > unsigned< / span > < span class = "keywordtype" > int< / span > size = length * < span class = "keyword" > sizeof< / span > (XMLCh);< / div >
< div class = "line" > < a name = "l00094" > < / a > < span class = "lineno" > 94< / span >   XMLCh *ret = (XMLCh*)_mm-> < a class = "code" href = "classxercesc_1_1MemoryManager.html#ab6bbb5b604d2159e7ccc4532e4f422af" > allocate< / a > (size + < span class = "keyword" > sizeof< / span > (XMLCh));< / div >
< div class = "line" > < a name = "l00095" > < / a > < span class = "lineno" > 95< / span >   memcpy(ret, v, size);< / div >
< div class = "line" > < a name = "l00096" > < / a > < span class = "lineno" > 96< / span >   ret[length] = 0;< / div >
< div class = "line" > < a name = "l00097" > < / a > < span class = "lineno" > 97< / span >   < span class = "keywordflow" > return< / span > ret;< / div >
< div class = "line" > < a name = "l00098" > < / a > < span class = "lineno" > 98< / span >   }< / div >
< div class = "line" > < a name = "l00099" > < / a > < span class = "lineno" > 99< / span >   < / div >
< div class = "line" > < a name = "l00100" > < / a > < span class = "lineno" > 100< / span >   < span class = "preprocessor" > #endif< / span > < / div >
< div class = "ttc" id = "MemoryManager_8hpp_html" > < div class = "ttname" > < a href = "MemoryManager_8hpp.html" > MemoryManager.hpp< / a > < / div > < / div >
< div class = "ttc" id = "classStringPool_html_a47d21c75962c61516daf6b7276fba8dd" > < div class = "ttname" > < a href = "classStringPool.html#a47d21c75962c61516daf6b7276fba8dd" > StringPool::getTooBig< / a > < / div > < div class = "ttdeci" > unsigned int getTooBig() const < / div > < div class = "ttdef" > < b > Definition:< / b > StringPool.hpp:48< / div > < / div >
< div class = "ttc" id = "classStringPool_html_a241899aef5a9ad993d7270a3ed849efa" > < div class = "ttname" > < a href = "classStringPool.html#a241899aef5a9ad993d7270a3ed849efa" > StringPool::getMisses< / a > < / div > < div class = "ttdeci" > unsigned int getMisses() const < / div > < div class = "ttdef" > < b > Definition:< / b > StringPool.hpp:47< / div > < / div >
< div class = "ttc" id = "classxercesc_1_1MemoryManager_html_ab6bbb5b604d2159e7ccc4532e4f422af" > < div class = "ttname" > < a href = "classxercesc_1_1MemoryManager.html#ab6bbb5b604d2159e7ccc4532e4f422af" > xercesc::MemoryManager::allocate< / a > < / div > < div class = "ttdeci" > virtual void * allocate(XMLSize_t size)=0< / div > < div class = "ttdoc" > This method allocates requested memory. < / div > < / div >
< div class = "ttc" id = "classStringPool_html" > < div class = "ttname" > < a href = "classStringPool.html" > StringPool< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > StringPool.hpp:32< / div > < / div >
< div class = "ttc" id = "classStringPool_html_ac3692bf7844a594db61f40c5dd9d63a3" > < div class = "ttname" > < a href = "classStringPool.html#ac3692bf7844a594db61f40c5dd9d63a3" > StringPool::getHits< / a > < / div > < div class = "ttdeci" > unsigned int getHits() const < / div > < div class = "ttdef" > < b > Definition:< / b > StringPool.hpp:46< / div > < / div >
< div class = "ttc" id = "classStringPool_html_af6d24d45f310175362ebd842c2123dac" > < div class = "ttname" > < a href = "classStringPool.html#af6d24d45f310175362ebd842c2123dac" > StringPool::getCount< / a > < / div > < div class = "ttdeci" > unsigned int getCount() const < / div > < div class = "ttdef" > < b > Definition:< / b > StringPool.hpp:45< / div > < / div >
< / div > <!-- fragment --> < / div > <!-- contents -->
<!-- start footer part -->
< hr class = "footer" / > < address class = "footer" > < small >
Generated by   < a href = "http://www.doxygen.org/index.html" >
< img class = "footer" src = "doxygen.png" alt = "doxygen" / >
< / a > 1.8.5
< / small > < / address >
2020-02-17 22:19:57 +01:00
< / body >
< / html >