diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/RefArrayOf.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/RefArrayOf.hpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,167 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +/* + * 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: RefArrayOf.hpp 568078 2007-08-21 11:43:25Z amassari $ + */ + + +#if !defined(REFARRAY_HPP) +#define REFARRAY_HPP + +#include +#include +#include +#include +#include + +XERCES_CPP_NAMESPACE_BEGIN + +template class RefArrayOf : public XMemory +{ +public : + // ----------------------------------------------------------------------- + // Contructors and Destructor + // ----------------------------------------------------------------------- + RefArrayOf + ( + const unsigned int size + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + RefArrayOf + ( + TElem* values[] + , const unsigned int size + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + RefArrayOf(const RefArrayOf& source); + ~RefArrayOf(); + + + // ----------------------------------------------------------------------- + // Public operators + // ----------------------------------------------------------------------- + TElem*& operator[](const unsigned int index); + const TElem* operator[](const unsigned int index) const; + RefArrayOf& operator=(const RefArrayOf& toAssign); + bool operator==(const RefArrayOf& toCompare) const; + bool operator!=(const RefArrayOf& toCompare) const; + + + // ----------------------------------------------------------------------- + // Copy operations + // ----------------------------------------------------------------------- + unsigned int copyFrom(const RefArrayOf& srcArray); + + + // ----------------------------------------------------------------------- + // Getter methods + // ----------------------------------------------------------------------- + unsigned int length() const; + TElem** rawData() const; + + + // ----------------------------------------------------------------------- + // Element management methods + // ----------------------------------------------------------------------- + void deleteAt(const unsigned int index); + void deleteAllElements(); + void resize(const unsigned int newSize); + + +private : + // ----------------------------------------------------------------------- + // Data members + // ----------------------------------------------------------------------- + unsigned int fSize; + TElem** fArray; + MemoryManager* fMemoryManager; +}; + + +// +// An enumerator for a reference array. It derives from the basic enumerator +// class, so that value vectors can be generically enumerated. +// +template class RefArrayEnumerator : public XMLEnumerator, public XMemory +{ +public : + // ----------------------------------------------------------------------- + // Constructors and Destructor + // ----------------------------------------------------------------------- + RefArrayEnumerator + ( + RefArrayOf* const toEnum + , const bool adopt = false + ); + virtual ~RefArrayEnumerator(); + + + // ----------------------------------------------------------------------- + // Enum interface + // ----------------------------------------------------------------------- + bool hasMoreElements() const; + TElem& nextElement(); + void Reset(); + + +private : + // ----------------------------------------------------------------------- + // Unimplemented constructors and operators + // ----------------------------------------------------------------------- + RefArrayEnumerator(const RefArrayEnumerator&); + RefArrayEnumerator& operator=(const RefArrayEnumerator&); + + // ----------------------------------------------------------------------- + // Data Members + // + // fAdopted + // Indicates whether we have adopted the passed array. If so then + // we delete it when we are destroyed. + // + // fCurIndex + // This is the current index into the array. + // + // fToEnum + // The reference array being enumerated. + // ----------------------------------------------------------------------- + bool fAdopted; + unsigned int fCurIndex; + RefArrayOf* fToEnum; +}; + +XERCES_CPP_NAMESPACE_END + +#if !defined(XERCES_TMPLSINC) +#include +#endif + +#endif