secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp
--- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/XMLGrammarPoolImpl.hpp Fri Jan 22 09:56:12 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-/*
- * 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: XMLGrammarPoolImpl.hpp 568078 2007-08-21 11:43:25Z amassari $
- */
-
-#if !defined(XMLGrammarPoolImplIMPL_HPP)
-#define XMLGrammarPoolImplIMPL_HPP
-
-#include <xercesc/framework/XMLGrammarPool.hpp>
-
-XERCES_CPP_NAMESPACE_BEGIN
-
-class XMLSynchronizedStringPool;
-
-class XMLUTIL_EXPORT XMLGrammarPoolImpl : public XMLGrammarPool
-{
-public :
- // -----------------------------------------------------------------------
- /** @name constructor and destructor */
- // -----------------------------------------------------------------------
- //@{
-
- XMLGrammarPoolImpl(MemoryManager* const memMgr);
-
- ~XMLGrammarPoolImpl();
- //@}
-
- // -----------------------------------------------------------------------
- /** @name Implementation of Grammar Pool Interface */
- // -----------------------------------------------------------------------
- //@{
-
- /**
- * cacheGrammar
- *
- * Provide the grammar pool with an opportunity
- * to cache the given grammar. If the pool does not choose to do so,
- * it should return false; otherwise, it should return true, so that
- * the caller knows whether the grammar has been adopted.
- *
- * @param gramToCache: the Grammar to be cached in the grammar pool
- * @return true if the grammar pool has elected to cache the grammar (in which case
- * it is assumed to have adopted it); false if it does not cache it
- *
- */
- virtual bool cacheGrammar(Grammar* const gramToCache);
-
-
- /**
- * retrieveGrammar
- *
- * @param gramDesc: the Grammar Description used to search for grammar
- * cached in the grammar pool
- *
- */
- virtual Grammar* retrieveGrammar(XMLGrammarDescription* const gramDesc);
-
-
- /**
- * orphanGrammar
- *
- * grammar removed from the grammar pool and owned by the caller
- *
- * @param nameSpaceKey: Key used to search for grammar in the grammar pool
- *
- */
- virtual Grammar* orphanGrammar(const XMLCh* const nameSpaceKey);
-
-
- /**
- * Get an enumeration of the cached Grammars in the Grammar pool
- *
- * @return enumeration of the cached Grammars in Grammar pool
- */
- virtual RefHashTableOfEnumerator<Grammar> getGrammarEnumerator() const;
-
- /**
- * clear
- *
- * all grammars are removed from the grammar pool and deleted.
- * @return true if the grammar pool was cleared. false if it did not.
- */
- virtual bool clear();
-
- /**
- * lockPool
- *
- * When this method is called by the application, the
- * grammar pool should stop adding new grammars to the cache.
- */
- virtual void lockPool();
-
- /**
- * unlockPool
- *
- * After this method has been called, the grammar pool implementation
- * should return to its default behaviour when cacheGrammars(...) is called.
- *
- * For PSVI support any previous XSModel that was produced will be deleted.
- */
- virtual void unlockPool();
-
- //@}
-
- // -----------------------------------------------------------------------
- /** @name Implementation of Factory interface */
- // -----------------------------------------------------------------------
- //@{
-
- /**
- * createDTDGrammar
- *
- */
- virtual DTDGrammar* createDTDGrammar();
-
- /**
- * createSchemaGrammar
- *
- */
- virtual SchemaGrammar* createSchemaGrammar();
-
- /**
- * createDTDDescription
- *
- */
- virtual XMLDTDDescription* createDTDDescription(const XMLCh* const systemId);
- /**
- * createSchemaDescription
- *
- */
- virtual XMLSchemaDescription* createSchemaDescription(const XMLCh* const targetNamespace);
- //@}
-
- // -----------------------------------------------------------------------
- /** @name schema component model support */
- // -----------------------------------------------------------------------
- //@{
-
- /***
- * Return an XSModel derived from the components of all SchemaGrammars
- * in the grammar pool. If the pool is locked, this should
- * be a thread-safe operation. It should return null if and only if
- * the pool is empty.
- *
- * Calling getXSModel() on an unlocked grammar pool may result in the
- * creation of a new XSModel with the old XSModel being deleted. The
- * function will return a different address for the XSModel if it has
- * changed.
- *
- * In this implementation, when the pool is not locked a new XSModel will be
- * computed each this time the pool is called if the pool has changed (and the
- * previous one will be destroyed at that time). When the lockPool()
- * method is called, an XSModel will be generated and returned whenever this method is called
- * while the pool is in the locked state. This will be destroyed if the unlockPool()
- * operation is called. The XSModel will not be serialized,
- * but will be recreated if a deserialized pool is in the
- * locked state.
- *
- * @deprecated (shouldn't use address to determine if XSModel changed)
- */
- virtual XSModel *getXSModel();
-
- /***
- * Return an XSModel derived from the components of all SchemaGrammars
- * in the grammar pool. If the pool is locked, this should
- * be a thread-safe operation.
- *
- * NOTE: The function should NEVER return NULL. If there are no grammars in
- * the pool it should return an XSModel containing the Schema for Schema.
- *
- * Calling getXSModel() on an unlocked grammar pool may result in the
- * creation of a new XSModel with the old XSModel being deleted.
- * The bool parameter will indicate if the XSModel was changed.
- *
- * In this implementation, when the pool is not locked a new XSModel will be
- * computed each this time the pool is called if the pool has changed (and the
- * previous one will be destroyed at that time). When the lockPool()
- * method is called, an XSModel will be generated and returned whenever this method is called
- * while the pool is in the locked state. This will be destroyed if the unlockPool()
- * operation is called. The XSModel will not be serialized,
- * but will be recreated if a deserialized pool is in the
- * locked state.
- *
- */
- virtual XSModel *getXSModel(bool& XSModelWasChanged);
-
- // @}
- // -----------------------------------------------------------------------
- /** @name Getter */
- // -----------------------------------------------------------------------
- //@{
-
- /**
- * Return an XMLStringPool for use by validation routines.
- * Implementations should not create a string pool on each call to this
- * method, but should maintain one string pool for all grammars
- * for which this pool is responsible.
- */
- virtual XMLStringPool *getURIStringPool();
-
- // @}
-
- // -----------------------------------------------------------------------
- // serialization and deserialization support
- // -----------------------------------------------------------------------
-
- /***
- *
- * Multiple serializations
- *
- * For multiple serializations, if the same file name is given, then the
- * last result will be in the file (overwriting mode), if different file
- * names are given, then there are multiple data stores for each serialization.
- *
- * Multiple deserializations
- *
- * Not supported
- *
- * Versioning
- *
- * Only binary data serialized with the current XercesC Version and
- * SerializationLevel is supported.
- *
- * Clean up
- *
- * In the event of an exception thrown due to a corrupted data store during
- * deserialization, this implementation may not be able to clean up all resources
- * allocated, and therefore it is the client application's responsibility to
- * clean up those unreleased resources.
- *
- * Coupling of Grammars and StringPool
- *
- * This implementation assumes that StringPool shall always be
- * serialized/deserialized together with the grammars. In the case that such a
- * coupling is not desired, client application can modify this behaviour by
- * either derivate from this imlementation and overwrite the serializeGrammars()
- * and/or deserializeGrammars() to decouple grammars and string pool, or
- * Once deserializeGrammars() is done, insert another StringPool through
- * setStringPool().
- *
- * Client application shall be aware of the unpredicatable/undefined consequence
- * of this decoupling.
- */
-
- virtual void serializeGrammars(BinOutputStream* const);
- virtual void deserializeGrammars(BinInputStream* const);
-
-private:
-
- virtual void createXSModel();
-
- void
- cleanUp();
-
- // -----------------------------------------------------------------------
- /** name Unimplemented copy constructor and operator= */
- // -----------------------------------------------------------------------
- //@{
- XMLGrammarPoolImpl(const XMLGrammarPoolImpl& );
- XMLGrammarPoolImpl& operator=(const XMLGrammarPoolImpl& );
- //@}
-
- // -----------------------------------------------------------------------
- //
- // fGrammarRegistry:
- //
- // container
- // fStringPool
- // grammars need a string pool for URI -> int mappings
- // fSynchronizedStringPool
- // When the grammar pool is locked, provide a string pool
- // that can be updated in a thread-safe manner.
- // fLocked
- // whether the pool has been locked
- //
- // -----------------------------------------------------------------------
- RefHashTableOf<Grammar>* fGrammarRegistry;
- XMLStringPool* fStringPool;
- XMLSynchronizedStringPool* fSynchronizedStringPool;
- XSModel* fXSModel;
- bool fLocked;
- bool fXSModelIsValid;
-};
-
-XERCES_CPP_NAMESPACE_END
-
-#endif