00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(XSNAMEDMAP_HPP)
00023 #define XSNAMEDMAP_HPP
00024
00025
00026 #include <xercesc/util/XMemory.hpp>
00027 #include <xercesc/util/RefHash2KeysTableOf.hpp>
00028 #include <xercesc/util/RefVectorOf.hpp>
00029
00030 XERCES_CPP_NAMESPACE_BEGIN
00031
00032 class XMLStringPool;
00033
00034
00035
00036
00037
00038
00039
00040 template <class TVal> class XSNamedMap: public XMemory
00041 {
00042 public:
00043
00044
00045
00048
00049 XSNamedMap(const unsigned int maxElems,
00050 const unsigned int modulus,
00051 XMLStringPool* uriStringPool,
00052 const bool adoptElems,
00053 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00054 );
00056
00059 ~XSNamedMap();
00060
00062
00063
00064
00065
00068
00074 unsigned int getLength();
00075
00085 TVal *item(unsigned int index);
00086
00098 TVal *itemByName(const XMLCh *compNamespace,
00099 const XMLCh *localName);
00100
00102
00103
00107 void addElement(TVal* const toAdd, const XMLCh* key1, const XMLCh* key2);
00109
00110
00111 private :
00112
00113
00114
00115 XSNamedMap(const XSNamedMap<TVal>&);
00116 XSNamedMap<TVal>& operator=(const XSNamedMap<TVal>&);
00117
00118
00119
00120
00121
00122
00123 MemoryManager *const fMemoryManager;
00124 XMLStringPool* fURIStringPool;
00125 RefVectorOf<TVal>* fVector;
00126 RefHash2KeysTableOf<TVal>* fHash;
00127 };
00128
00129
00130
00131 XERCES_CPP_NAMESPACE_END
00132
00133 #if !defined(XERCES_TMPLSINC)
00134 #include <xercesc/framework/psvi/XSNamedMap.c>
00135 #endif
00136
00137 #endif