Xerces-C++  3.1.2
Public Member Functions | List of all members
XMLGrammarPool Class Referenceabstract
Inheritance diagram for XMLGrammarPool:

Public Member Functions

virtual void serializeGrammars (BinOutputStream *const)=0
 serialization and deserialization support More...
virtual void deserializeGrammars (BinInputStream *const)=0
void setIgnoreSerializedAnnotations (const bool flag)
bool getIgnoreSerializedAnnotations () const
Virtual destructor for derived classes
virtual ~XMLGrammarPool ()
 virtual destructor More...
The Grammar Pool Interface
virtual bool cacheGrammar (Grammar *const gramToCache)=0
 cacheGrammar More...
virtual Grammar * retrieveGrammar (XMLGrammarDescription *const gramDesc)=0
 retrieveGrammar More...
virtual Grammar * orphanGrammar (const XMLCh *const nameSpaceKey)=0
 orphanGrammar More...
virtual RefHashTableOfEnumerator< Grammar > getGrammarEnumerator () const =0
 Get an enumeration of the cached Grammars in the Grammar pool. More...
virtual bool clear ()=0
 clear More...
virtual void lockPool ()=0
 lockPool More...
virtual void unlockPool ()=0
 unlockPool More...
Factory interface
virtual DTDGrammar * createDTDGrammar ()=0
 createDTDGrammar More...
virtual SchemaGrammar * createSchemaGrammar ()=0
 createSchemaGrammar More...
virtual XMLDTDDescriptioncreateDTDDescription (const XMLCh *const systemId)=0
 createDTDDescription More...
virtual XMLSchemaDescriptioncreateSchemaDescription (const XMLCh *const targetNamespace)=0
 createSchemaDescription More...
schema component model support
virtual XSModelgetXSModel (bool &XSModelWasChanged)=0
MemoryManagergetMemoryManager ()
 getMemoryManager More...
virtual XMLStringPool * getURIStringPool ()=0
 Return an XMLStringPool for use by validation routines. More...
- Public Member Functions inherited from XMemory
void * operator new (size_t size)
 This method overrides operator new. More...
void * operator new (size_t size, MemoryManager *memMgr)
 This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
void * operator new (size_t size, void *ptr)
 This method overrides placement operator new. More...
void operator delete (void *p)
 This method overrides operator delete. More...
void operator delete (void *p, MemoryManager *memMgr)
 This method provides a matching delete for the custom operator new. More...
void operator delete (void *p, void *ptr)
 This method provides a matching delete for the placement new. More...

Protected Member Functions

 XMLGrammarPool (MemoryManager *const memMgr=XMLPlatformUtils::fgMemoryManager)
 Hidden Constructors. More...
- Protected Member Functions inherited from XMemory
 XMemory ()
 Protected default constructor. More...

Constructor & Destructor Documentation

virtual XMLGrammarPool::~XMLGrammarPool ( )

virtual destructor

XMLGrammarPool::XMLGrammarPool ( MemoryManager *const  memMgr = XMLPlatformUtils::fgMemoryManager)

Hidden Constructors.

Member Function Documentation

virtual bool XMLGrammarPool::cacheGrammar ( Grammar *const  gramToCache)
pure virtual


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.

gramToCachethe Grammar to be cached in the grammar pool
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 XMLGrammarPool::clear ( )
pure virtual


all grammars are removed from the grammar pool and deleted.

true if the grammar pool was cleared. false if it did not.
virtual XMLDTDDescription* XMLGrammarPool::createDTDDescription ( const XMLCh *const  systemId)
pure virtual


virtual DTDGrammar* XMLGrammarPool::createDTDGrammar ( )
pure virtual


virtual XMLSchemaDescription* XMLGrammarPool::createSchemaDescription ( const XMLCh *const  targetNamespace)
pure virtual


virtual SchemaGrammar* XMLGrammarPool::createSchemaGrammar ( )
pure virtual


virtual void XMLGrammarPool::deserializeGrammars ( BinInputStream const)
pure virtual
virtual RefHashTableOfEnumerator<Grammar> XMLGrammarPool::getGrammarEnumerator ( ) const
pure virtual

Get an enumeration of the cached Grammars in the Grammar pool.

enumeration of the cached Grammars in Grammar pool
bool XMLGrammarPool::getIgnoreSerializedAnnotations ( ) const
MemoryManager* XMLGrammarPool::getMemoryManager ( )


virtual XMLStringPool* XMLGrammarPool::getURIStringPool ( )
pure virtual

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 XSModel* XMLGrammarPool::getXSModel ( bool &  XSModelWasChanged)
pure virtual
virtual void XMLGrammarPool::lockPool ( )
pure virtual


When this method is called by the application, the grammar pool should stop adding new grammars to the cache. This should result in the grammar pool being sharable among parsers operating in different threads.

virtual Grammar* XMLGrammarPool::orphanGrammar ( const XMLCh *const  nameSpaceKey)
pure virtual


grammar removed from the grammar pool and owned by the caller

nameSpaceKeyKey used to search for grammar in the grammar pool
the grammar that was removed from the pool (0 if none)
virtual Grammar* XMLGrammarPool::retrieveGrammar ( XMLGrammarDescription *const  gramDesc)
pure virtual


gramDescthe Grammar Description used to search for grammar cached in the grammar pool
virtual void XMLGrammarPool::serializeGrammars ( BinOutputStream const)
pure virtual

serialization and deserialization support

void XMLGrammarPool::setIgnoreSerializedAnnotations ( const bool  flag)
virtual void XMLGrammarPool::unlockPool ( )
pure virtual


After this method has been called, the grammar pool implementation should return to its default behaviour when cacheGrammars(...) is called. One effect, depending on the underlying implementation, is that the grammar pool may no longer be thread-safe (even on read operations).

For PSVI support any previous XSModel that was produced will be deleted.

The documentation for this class was generated from the following file: