XSNamedMap.hpp
Go to the documentation of this file.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
/*
* $Id: XSNamedMap.hpp 674012 2008-07-04 11:18:21Z borisk $
*/
#if !defined(XERCESC_INCLUDE_GUARD_XSNAMEDMAP_HPP)
#define XERCESC_INCLUDE_GUARD_XSNAMEDMAP_HPP
#include <xercesc/util/XMemory.hpp>
#include <xercesc/util/RefHash2KeysTableOf.hpp>
#include <xercesc/util/RefVectorOf.hpp>
XERCES_CPP_NAMESPACE_BEGIN
class XMLStringPool;
/*
* This template provides convenient mappings between name,namespace
* pairs and individual components, as well as means to iterate through all the
* named components on some object.
*/
template <class TVal> class XSNamedMap: public XMemory
{
public:
// -----------------------------------------------------------------------
// Constructors and Destructor
// -----------------------------------------------------------------------
XSNamedMap(const XMLSize_t maxElems,
const XMLSize_t modulus,
XMLStringPool* uriStringPool,
const bool adoptElems,
MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
~XSNamedMap();
// -----------------------------------------------------------------------
// XSNamedMap methods
// -----------------------------------------------------------------------
XMLSize_t getLength() const;
TVal *item(XMLSize_t index);
const TVal *item(XMLSize_t index) const;
TVal *itemByName(const XMLCh *compNamespace,
const XMLCh *localName);
//----------------------------------
void addElement(TVal* const toAdd, const XMLCh* key1, const XMLCh* key2);
private :
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
XSNamedMap(const XSNamedMap<TVal>&);
XSNamedMap<TVal>& operator=(const XSNamedMap<TVal>&);
// -----------------------------------------------------------------------
// Data members
//
// fMemoryManager
// manager used to allocate memory needed by this object
MemoryManager *const fMemoryManager;
XMLStringPool* fURIStringPool;
RefVectorOf<TVal>* fVector;
RefHash2KeysTableOf<TVal>* fHash;
};
XERCES_CPP_NAMESPACE_END
#if !defined(XERCES_TMPLSINC)
#include <xercesc/framework/psvi/XSNamedMap.c>
#endif
#endif
XMemory
This class makes it possible to override the C++ memory management by adding new/delete operators to ...
Definition: XMemory.hpp:40
XMLPlatformUtils::fgMemoryManager
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition: PlatformUtils.hpp:121
XSNamedMap::getLength
XMLSize_t getLength() const
The number of XSObjects in the XSObjectList.
XSNamedMap::addElement
void addElement(TVal *const toAdd, const XMLCh *key1, const XMLCh *key2)
methods needed by implementation
XSNamedMap::item
TVal * item(XMLSize_t index)
Returns the indexth item in the collection.
XSNamedMap::XSNamedMap
XSNamedMap(const XMLSize_t maxElems, const XMLSize_t modulus, XMLStringPool *uriStringPool, const bool adoptElems, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
MemoryManager
Configurable memory manager.
Definition: MemoryManager.hpp:39
XMLCh
uint16_t XMLCh
Definition: Xerces_autoconf_config.hpp:118
XERCES_CPP_NAMESPACE_BEGIN
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
XSNamedMap::itemByName
TVal * itemByName(const XMLCh *compNamespace, const XMLCh *localName)
Retrieves a component specified by local name and namespace URI.
XMLSize_t
size_t XMLSize_t
Definition: Xerces_autoconf_config.hpp:110
XERCES_CPP_NAMESPACE_END
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
XSNamedMap
Definition: XSNamedMap.hpp:40
XMemory.hpp
XSNamedMap::~XSNamedMap
~XSNamedMap()