peiyongz 2003/07/10 12:47:24
Modified: c/src/xercesc/internal DGXMLScanner.cpp DGXMLScanner.hpp
IGXMLScanner.cpp IGXMLScanner.hpp IGXMLScanner2.cpp
SGXMLScanner.cpp SGXMLScanner.hpp WFXMLScanner.cpp
WFXMLScanner.hpp XMLScanner.cpp XMLScanner.hpp
XMLScannerResolver.cpp XMLScannerResolver.hpp
Log:
Stateless Grammar: Initialize scanner with grammarResolver,
creating grammar through grammarPool
Revision Changes Path
1.20 +18 -15 xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp
Index: DGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DGXMLScanner.cpp 26 Jun 2003 16:56:41 -0000 1.19
+++ DGXMLScanner.cpp 10 Jul 2003 19:47:23 -0000 1.20
@@ -84,9 +84,11 @@
// ---------------------------------------------------------------------------
// DGXMLScanner: Constructors and Destructor
// ---------------------------------------------------------------------------
-DGXMLScanner::DGXMLScanner(XMLValidator* const valToAdopt, MemoryManager* const
manager) :
+DGXMLScanner::DGXMLScanner(XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
+ , MemoryManager* const manager) :
- XMLScanner(valToAdopt, manager)
+ XMLScanner(valToAdopt, grammarResolver, manager)
, fElemStack(manager)
, fAttrNSList(0)
, fDTDValidator(0)
@@ -118,9 +120,10 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errHandler
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
manager)
+ XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
grammarResolver, manager)
, fElemStack(manager)
, fAttrNSList(0)
, fDTDValidator(0)
@@ -769,12 +772,12 @@
//
// Only do this if we are not reusing the validator! If we are reusing,
// then look it up instead. It has to exist!
- DTDElementDecl* rootDecl = new (fMemoryManager) DTDElementDecl
+ DTDElementDecl* rootDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
bbRootName.getRawBuffer()
, fEmptyNamespaceId
, DTDElementDecl::Any
- , fMemoryManager
+ , fGrammarPoolMemoryManager
);
rootDecl->setCreateReason(DTDElementDecl::AsRootElem);
@@ -809,6 +812,7 @@
(
(DTDGrammar*) fGrammar
, fDocTypeHandler
+ , fGrammarPoolMemoryManager
, fMemoryManager
);
dtdScanner.setScannerInfo(this, &fReaderMgr, &fBufMgr);
@@ -933,12 +937,12 @@
if (rootDecl)
((DTDGrammar*)fGrammar)->setRootElemId(rootDecl->getId());
else {
- rootDecl = new (fMemoryManager) DTDElementDecl
+ rootDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
bbRootName.getRawBuffer()
, fEmptyNamespaceId
, DTDElementDecl::Any
- , fMemoryManager
+ , fGrammarPoolMemoryManager
);
rootDecl->setCreateReason(DTDElementDecl::AsRootElem);
rootDecl->setExternalElemDeclaration(true);
@@ -989,7 +993,7 @@
// with an external entity. Put a janitor on it to insure it gets
// cleaned up. The reader manager does not adopt them.
const XMLCh gDTDStr[] = { chLatin_D, chLatin_T, chLatin_D , chNull };
- DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr,
false, fMemoryManager);
+ DTDEntityDecl* declDTD = new (fGrammarPoolMemoryManager)
DTDEntityDecl(gDTDStr, false, fGrammarPoolMemoryManager);
declDTD->setSystemId(sysId);
Janitor<DTDEntityDecl> janDecl(declDTD);
@@ -1681,8 +1685,7 @@
if (fValidatorFromUser)
fValidator->reset();
- //fDTDGrammar = fGrammarResolver->getGrammarPool()->createDTDGrammar();
- fDTDGrammar = new (fMemoryManager) DTDGrammar(fMemoryManager);
+ fDTDGrammar = new (fGrammarPoolMemoryManager)
DTDGrammar(fGrammarPoolMemoryManager);
XMLDTDDescription* gramDesc =
fGrammarResolver->getGrammarPool()->createDTDDescription(XMLUni::fgDTDEntityString);
fGrammarResolver->putGrammar(gramDesc, fDTDGrammar);
fGrammar = fDTDGrammar;
@@ -1735,7 +1738,7 @@
// with an external entity. Put a janitor on it to insure it gets
// cleaned up. The reader manager does not adopt them.
const XMLCh gDTDStr[] = { chLatin_D, chLatin_T, chLatin_D , chNull };
- DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr, false,
fMemoryManager);
+ DTDEntityDecl* declDTD = new (fGrammarPoolMemoryManager) DTDEntityDecl(gDTDStr,
false, fGrammarPoolMemoryManager);
declDTD->setSystemId(src.getSystemId());
Janitor<DTDEntityDecl> janDecl(declDTD);
@@ -1750,12 +1753,12 @@
if (fDocTypeHandler) {
// Create a dummy root
- DTDElementDecl* rootDecl = new (fMemoryManager) DTDElementDecl
+ DTDElementDecl* rootDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
gDTDStr
, fEmptyNamespaceId
, DTDElementDecl::Any
- , fMemoryManager
+ , fGrammarPoolMemoryManager
);
rootDecl->setCreateReason(DTDElementDecl::AsRootElem);
rootDecl->setExternalElemDeclaration(true);
@@ -1769,6 +1772,7 @@
(
(DTDGrammar*)fGrammar
, fDocTypeHandler
+ , fGrammarPoolMemoryManager
, fMemoryManager
);
dtdScanner.setScannerInfo(this, &fReaderMgr, &fBufMgr);
@@ -2039,8 +2043,7 @@
fGrammarResolver->cacheGrammarFromParse(fToCacheGrammar);
fGrammarResolver->useCachedGrammarInParse(fUseCachedGrammar);
- //fDTDGrammar = fGrammarResolver->getGrammarPool()->createDTDGrammar();
- fDTDGrammar = new (fMemoryManager) DTDGrammar(fMemoryManager);
+ fDTDGrammar = new (fGrammarPoolMemoryManager)
DTDGrammar(fGrammarPoolMemoryManager);
XMLDTDDescription* gramDesc =
fGrammarResolver->getGrammarPool()->createDTDDescription(XMLUni::fgDTDEntityString);
fGrammarResolver->putGrammar(gramDesc, fDTDGrammar);
fGrammar = fDTDGrammar;
1.7 +5 -1 xml-xerces/c/src/xercesc/internal/DGXMLScanner.hpp
Index: DGXMLScanner.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DGXMLScanner.hpp 22 May 2003 02:10:51 -0000 1.6
+++ DGXMLScanner.hpp 10 Jul 2003 19:47:23 -0000 1.7
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.7 2003/07/10 19:47:23 peiyongz
+ * Stateless Grammar: Initialize scanner with grammarResolver,
+ * creating grammar through grammarPool
+ *
* Revision 1.6 2003/05/22 02:10:51 knoaman
* Default the memory manager.
*
@@ -90,7 +94,6 @@
class DTDGrammar;
class DTDValidator;
-
// This is an integrated scanner class, which does DTD/XML Schema grammar
// processing.
class XMLPARSER_EXPORT DGXMLScanner : public XMLScanner
@@ -102,6 +105,7 @@
DGXMLScanner
(
XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
DGXMLScanner
@@ -111,6 +115,7 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
virtual ~DGXMLScanner();
1.19 +15 -12 xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
Index: IGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- IGXMLScanner.cpp 26 Jun 2003 16:56:41 -0000 1.18
+++ IGXMLScanner.cpp 10 Jul 2003 19:47:23 -0000 1.19
@@ -90,9 +90,10 @@
// IGXMLScanner: Constructors and Destructor
// ---------------------------------------------------------------------------
IGXMLScanner::IGXMLScanner( XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(valToAdopt, manager)
+ XMLScanner(valToAdopt, grammarResolver, manager)
, fSeeXsi(false)
, fElemStateSize(16)
, fElemState(0)
@@ -126,9 +127,10 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errHandler
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
manager)
+ XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
grammarResolver, manager)
, fSeeXsi(false)
, fElemStateSize(16)
, fElemState(0)
@@ -1175,12 +1177,12 @@
//
// Only do this if we are not reusing the validator! If we are reusing,
// then look it up instead. It has to exist!
- DTDElementDecl* rootDecl = new (fMemoryManager) DTDElementDecl
+ DTDElementDecl* rootDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
bbRootName.getRawBuffer()
, fEmptyNamespaceId
, DTDElementDecl::Any
- , fMemoryManager
+ , fGrammarPoolMemoryManager
);
rootDecl->setCreateReason(DTDElementDecl::AsRootElem);
@@ -1215,6 +1217,7 @@
(
(DTDGrammar*) fGrammar
, fDocTypeHandler
+ , fGrammarPoolMemoryManager
, fMemoryManager
);
dtdScanner.setScannerInfo(this, &fReaderMgr, &fBufMgr);
@@ -1339,12 +1342,12 @@
if (rootDecl)
((DTDGrammar*)fGrammar)->setRootElemId(rootDecl->getId());
else {
- rootDecl = new (fMemoryManager) DTDElementDecl
+ rootDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
bbRootName.getRawBuffer()
, fEmptyNamespaceId
, DTDElementDecl::Any
- , fMemoryManager
+ , fGrammarPoolMemoryManager
);
rootDecl->setCreateReason(DTDElementDecl::AsRootElem);
rootDecl->setExternalElemDeclaration(true);
@@ -1395,7 +1398,7 @@
// with an external entity. Put a janitor on it to insure it gets
// cleaned up. The reader manager does not adopt them.
const XMLCh gDTDStr[] = { chLatin_D, chLatin_T, chLatin_D , chNull };
- DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr,
false, fMemoryManager);
+ DTDEntityDecl* declDTD = new (fGrammarPoolMemoryManager)
DTDEntityDecl(gDTDStr, false, fGrammarPoolMemoryManager);
declDTD->setSystemId(sysId);
Janitor<DTDEntityDecl> janDecl(declDTD);
@@ -2851,8 +2854,7 @@
}
}
- //fDTDGrammar = fGrammarResolver->getGrammarPool()->createDTDGrammar();
- fDTDGrammar = new (fMemoryManager) DTDGrammar(fMemoryManager);
+ fDTDGrammar = new (fGrammarPoolMemoryManager)
DTDGrammar(fGrammarPoolMemoryManager);
XMLDTDDescription* gramDesc =
fGrammarResolver->getGrammarPool()->createDTDDescription(XMLUni::fgDTDEntityString);
fGrammarResolver->putGrammar(gramDesc, fDTDGrammar);
fGrammar = fDTDGrammar;
@@ -2906,7 +2908,7 @@
// with an external entity. Put a janitor on it to insure it gets
// cleaned up. The reader manager does not adopt them.
const XMLCh gDTDStr[] = { chLatin_D, chLatin_T, chLatin_D , chNull };
- DTDEntityDecl* declDTD = new (fMemoryManager) DTDEntityDecl(gDTDStr, false,
fMemoryManager);
+ DTDEntityDecl* declDTD = new (fGrammarPoolMemoryManager) DTDEntityDecl(gDTDStr,
false, fGrammarPoolMemoryManager);
declDTD->setSystemId(src.getSystemId());
Janitor<DTDEntityDecl> janDecl(declDTD);
@@ -2921,12 +2923,12 @@
if (fDocTypeHandler) {
// Create a dummy root
- DTDElementDecl* rootDecl = new (fMemoryManager) DTDElementDecl
+ DTDElementDecl* rootDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
gDTDStr
, fEmptyNamespaceId
, DTDElementDecl::Any
- , fMemoryManager
+ , fGrammarPoolMemoryManager
);
rootDecl->setCreateReason(DTDElementDecl::AsRootElem);
rootDecl->setExternalElemDeclaration(true);
@@ -2940,6 +2942,7 @@
(
(DTDGrammar*) fGrammar
, fDocTypeHandler
+ , fGrammarPoolMemoryManager
, fMemoryManager
);
dtdScanner.setScannerInfo(this, &fReaderMgr, &fBufMgr);
1.8 +5 -0 xml-xerces/c/src/xercesc/internal/IGXMLScanner.hpp
Index: IGXMLScanner.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- IGXMLScanner.hpp 22 May 2003 02:10:51 -0000 1.7
+++ IGXMLScanner.hpp 10 Jul 2003 19:47:23 -0000 1.8
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.8 2003/07/10 19:47:23 peiyongz
+ * Stateless Grammar: Initialize scanner with grammarResolver,
+ * creating grammar through grammarPool
+ *
* Revision 1.7 2003/05/22 02:10:51 knoaman
* Default the memory manager.
*
@@ -113,6 +117,7 @@
IGXMLScanner
(
XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
IGXMLScanner
@@ -122,6 +127,7 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
virtual ~IGXMLScanner();
1.27 +3 -7 xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
Index: IGXMLScanner2.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- IGXMLScanner2.cpp 26 Jun 2003 16:56:41 -0000 1.26
+++ IGXMLScanner2.cpp 10 Jul 2003 19:47:23 -0000 1.27
@@ -869,8 +869,7 @@
fGrammarResolver->cacheGrammarFromParse(fToCacheGrammar);
fGrammarResolver->useCachedGrammarInParse(fUseCachedGrammar);
- //fDTDGrammar = fGrammarResolver->getGrammarPool()->createDTDGrammar();
- fDTDGrammar = new (fMemoryManager) DTDGrammar(fMemoryManager);
+ fDTDGrammar = new (fGrammarPoolMemoryManager)
DTDGrammar(fGrammarPoolMemoryManager);
XMLDTDDescription* gramDesc =
fGrammarResolver->getGrammarPool()->createDTDDescription(XMLUni::fgDTDEntityString);
fGrammarResolver->putGrammar(gramDesc, fDTDGrammar);
fGrammar = fDTDGrammar;
@@ -1428,8 +1427,7 @@
}
}
- //grammar =
fGrammarResolver->getGrammarPool()->createSchemaGrammar();
- grammar = new (fMemoryManager) SchemaGrammar(fMemoryManager);
+ grammar = new (fGrammarPoolMemoryManager)
SchemaGrammar(fGrammarPoolMemoryManager);
TraverseSchema traverseSchema
(
root
@@ -1600,9 +1598,7 @@
DOMElement* root = document->getDocumentElement();// This is what we pass
to TraverserSchema
if (root != 0)
{
- //SchemaGrammar* grammar =
fGrammarResolver->getGrammarPool()->createSchemaGrammar();
- SchemaGrammar* grammar = new (fMemoryManager)
SchemaGrammar(fMemoryManager);
-
+ SchemaGrammar* grammar = new (fGrammarPoolMemoryManager)
SchemaGrammar(fGrammarPoolMemoryManager);
TraverseSchema traverseSchema
(
root
1.32 +7 -8 xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
Index: SGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- SGXMLScanner.cpp 26 Jun 2003 16:56:41 -0000 1.31
+++ SGXMLScanner.cpp 10 Jul 2003 19:47:23 -0000 1.32
@@ -91,9 +91,10 @@
// SGXMLScanner: Constructors and Destructor
// ---------------------------------------------------------------------------
SGXMLScanner::SGXMLScanner( XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(valToAdopt, manager)
+ XMLScanner(valToAdopt, grammarResolver, manager)
, fSeeXsi(false)
, fElemStateSize(16)
, fElemState(0)
@@ -132,9 +133,10 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errHandler
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
manager)
+ XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
grammarResolver, manager)
, fSeeXsi(false)
, fElemStateSize(16)
, fElemState(0)
@@ -1878,8 +1880,7 @@
fRawAttrList = new (fMemoryManager) RefVectorOf<KVStringPair>(32, true,
fMemoryManager);
// Create dummy schema grammar
- //fSchemaGrammar = fGrammarResolver->getGrammarPool()->createSchemaGrammar();
- fSchemaGrammar = new (fMemoryManager) SchemaGrammar(fMemoryManager);
+ fSchemaGrammar = new (fGrammarPoolMemoryManager)
SchemaGrammar(fGrammarPoolMemoryManager);
// Create the Validator and init them
fSchemaValidator = new (fMemoryManager) SchemaValidator(0, fMemoryManager);
@@ -3181,8 +3182,7 @@
fElemStack.setValidationFlag(fValidate);
}
- //grammar =
fGrammarResolver->getGrammarPool()->createSchemaGrammar();
- grammar = new (fMemoryManager) SchemaGrammar(fMemoryManager);
+ grammar = new (fGrammarPoolMemoryManager)
SchemaGrammar(fGrammarPoolMemoryManager);
TraverseSchema traverseSchema
(
@@ -3335,8 +3335,7 @@
DOMElement* root = document->getDocumentElement();// This is what we pass
to TraverserSchema
if (root != 0)
{
- //SchemaGrammar* grammar =
fGrammarResolver->getGrammarPool()->createSchemaGrammar();
- SchemaGrammar* grammar = new (fMemoryManager)
SchemaGrammar(fMemoryManager);
+ SchemaGrammar* grammar = new (fGrammarPoolMemoryManager)
SchemaGrammar(fGrammarPoolMemoryManager);
TraverseSchema traverseSchema
(
root
1.8 +5 -0 xml-xerces/c/src/xercesc/internal/SGXMLScanner.hpp
Index: SGXMLScanner.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SGXMLScanner.hpp 16 May 2003 21:36:57 -0000 1.7
+++ SGXMLScanner.hpp 10 Jul 2003 19:47:23 -0000 1.8
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.8 2003/07/10 19:47:23 peiyongz
+ * Stateless Grammar: Initialize scanner with grammarResolver,
+ * creating grammar through grammarPool
+ *
* Revision 1.7 2003/05/16 21:36:57 knoaman
* Memory manager implementation: Modify constructors to pass in the memory manager.
*
@@ -112,6 +116,7 @@
SGXMLScanner
(
XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
SGXMLScanner
@@ -121,6 +126,7 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
virtual ~SGXMLScanner();
1.13 +9 -7 xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp
Index: WFXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- WFXMLScanner.cpp 18 May 2003 14:02:04 -0000 1.12
+++ WFXMLScanner.cpp 10 Jul 2003 19:47:23 -0000 1.13
@@ -80,9 +80,10 @@
// WFXMLScanner: Constructors and Destructor
// ---------------------------------------------------------------------------
WFXMLScanner::WFXMLScanner( XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(valToAdopt, manager)
+ XMLScanner(valToAdopt, grammarResolver, manager)
, fElementIndex(0)
, fElements(0)
, fEntityTable(0)
@@ -107,9 +108,10 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errHandler
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
- XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
manager)
+ XMLScanner(docHandler, docTypeHandler, entityHandler, errHandler, valToAdopt,
grammarResolver, manager)
, fElementIndex(0)
, fElements(0)
, fEntityTable(0)
@@ -814,9 +816,9 @@
elemDecl = fElements->elementAt(fElementIndex);
}
else {
- elemDecl = new (fMemoryManager) DTDElementDecl
+ elemDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
- fMemoryManager
+ fGrammarPoolMemoryManager
);
fElements->addElement(elemDecl);
}
@@ -1141,9 +1143,9 @@
elemDecl = fElements->elementAt(fElementIndex);
}
else {
- elemDecl = new (fMemoryManager) DTDElementDecl
+ elemDecl = new (fGrammarPoolMemoryManager) DTDElementDecl
(
- fMemoryManager
+ fGrammarPoolMemoryManager
);
fElements->addElement(elemDecl);
}
1.7 +5 -0 xml-xerces/c/src/xercesc/internal/WFXMLScanner.hpp
Index: WFXMLScanner.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WFXMLScanner.hpp 16 May 2003 21:36:57 -0000 1.6
+++ WFXMLScanner.hpp 10 Jul 2003 19:47:24 -0000 1.7
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.7 2003/07/10 19:47:24 peiyongz
+ * Stateless Grammar: Initialize scanner with grammarResolver,
+ * creating grammar through grammarPool
+ *
* Revision 1.6 2003/05/16 21:36:57 knoaman
* Memory manager implementation: Modify constructors to pass in the memory manager.
*
@@ -100,6 +104,7 @@
WFXMLScanner
(
XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
WFXMLScanner
@@ -109,6 +114,7 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
virtual ~WFXMLScanner();
1.46 +7 -3 xml-xerces/c/src/xercesc/internal/XMLScanner.cpp
Index: XMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- XMLScanner.cpp 18 May 2003 14:02:04 -0000 1.45
+++ XMLScanner.cpp 10 Jul 2003 19:47:24 -0000 1.46
@@ -164,6 +164,7 @@
// XMLScanner: Constructors and Destructor
// ---------------------------------------------------------------------------
XMLScanner::XMLScanner(XMLValidator* const valToAdopt,
+ GrammarResolver* const grammarResolver,
MemoryManager* const manager) :
fCalculateSrcOfs(false)
@@ -199,7 +200,8 @@
, fReaderMgr(manager)
, fValidator(valToAdopt)
, fValScheme(Val_Never)
- , fGrammarResolver(0)
+ , fGrammarResolver(grammarResolver)
+ , fGrammarPoolMemoryManager(grammarResolver->getGrammarPoolMemoryManager())
, fGrammar(0)
, fRootGrammar(0)
, fURIStringPool(0)
@@ -231,6 +233,7 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errHandler
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager) :
fCalculateSrcOfs(false)
@@ -266,7 +269,8 @@
, fReaderMgr(manager)
, fValidator(valToAdopt)
, fValScheme(Val_Never)
- , fGrammarResolver(0)
+ , fGrammarResolver(grammarResolver)
+ , fGrammarPoolMemoryManager(grammarResolver->getGrammarPoolMemoryManager())
, fGrammar(0)
, fRootGrammar(0)
, fURIStringPool(0)
1.23 +8 -9 xml-xerces/c/src/xercesc/internal/XMLScanner.hpp
Index: XMLScanner.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.hpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- XMLScanner.hpp 16 May 2003 21:36:58 -0000 1.22
+++ XMLScanner.hpp 10 Jul 2003 19:47:24 -0000 1.23
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.23 2003/07/10 19:47:24 peiyongz
+ * Stateless Grammar: Initialize scanner with grammarResolver,
+ * creating grammar through grammarPool
+ *
* Revision 1.22 2003/05/16 21:36:58 knoaman
* Memory manager implementation: Modify constructors to pass in the memory manager.
*
@@ -283,7 +287,7 @@
#include <xercesc/internal/ReaderMgr.hpp>
#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
#include <xercesc/framework/XMLAttr.hpp>
-
+#include <xercesc/validators/common/GrammarResolver.hpp>
XERCES_CPP_NAMESPACE_BEGIN
@@ -295,7 +299,6 @@
class XMLPScanToken;
class XMLStringPool;
class Grammar;
-class GrammarResolver;
class XMLValidator;
class MemoryManager;
@@ -368,6 +371,7 @@
XMLScanner
(
XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
XMLScanner
@@ -377,6 +381,7 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
virtual ~XMLScanner();
@@ -551,7 +556,6 @@
void setEntityHandler(XMLEntityHandler* const docTypeHandler);
void setErrorReporter(XMLErrorReporter* const errHandler);
void setErrorHandler(ErrorHandler* const handler);
- void setGrammarResolver(GrammarResolver* const grammarResolver);
void setURIStringPool(XMLStringPool* const stringPool);
void setExitOnFirstFatal(const bool newValue);
void setValidationConstraintFatal(const bool newValue);
@@ -919,7 +923,8 @@
ReaderMgr fReaderMgr;
XMLValidator* fValidator;
ValSchemes fValScheme;
- GrammarResolver* fGrammarResolver;
+ GrammarResolver* const fGrammarResolver;
+ MemoryManager* const fGrammarPoolMemoryManager;
Grammar* fGrammar;
Grammar* fRootGrammar;
XMLStringPool* fURIStringPool;
@@ -1221,11 +1226,6 @@
inline void XMLScanner::setErrorReporter(XMLErrorReporter* const errHandler)
{
fErrorReporter = errHandler;
-}
-
-inline void XMLScanner::setGrammarResolver(GrammarResolver* const grammarResolver)
-{
- fGrammarResolver = grammarResolver;
}
inline void XMLScanner::setExitOnFirstFatal(const bool newValue)
1.6 +13 -10 xml-xerces/c/src/xercesc/internal/XMLScannerResolver.cpp
Index: XMLScannerResolver.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScannerResolver.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XMLScannerResolver.cpp 15 May 2003 18:26:29 -0000 1.5
+++ XMLScannerResolver.cpp 10 Jul 2003 19:47:24 -0000 1.6
@@ -75,24 +75,26 @@
// ---------------------------------------------------------------------------
XMLScanner*
XMLScannerResolver::getDefaultScanner( XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager)
{
- return new (manager) IGXMLScanner(valToAdopt, manager);
+ return new (manager) IGXMLScanner(valToAdopt, grammarResolver, manager);
}
XMLScanner*
XMLScannerResolver::resolveScanner( const XMLCh* const scannerName
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager)
{
if (XMLString::equals(scannerName, XMLUni::fgWFXMLScanner))
- return new (manager) WFXMLScanner(valToAdopt, manager);
+ return new (manager) WFXMLScanner(valToAdopt, grammarResolver, manager);
else if (XMLString::equals(scannerName, XMLUni::fgIGXMLScanner))
- return new (manager) IGXMLScanner(valToAdopt, manager);
+ return new (manager) IGXMLScanner(valToAdopt, grammarResolver, manager);
else if (XMLString::equals(scannerName, XMLUni::fgSGXMLScanner))
- return new (manager) SGXMLScanner(valToAdopt, manager);
+ return new (manager) SGXMLScanner(valToAdopt, grammarResolver, manager);
else if (XMLString::equals(scannerName, XMLUni::fgDGXMLScanner))
- return new (manager) DGXMLScanner(valToAdopt, manager);
+ return new (manager) DGXMLScanner(valToAdopt, grammarResolver, manager);
// REVISIT: throw an exception or return a default one?
return 0;
@@ -105,16 +107,17 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager)
{
if (XMLString::equals(scannerName, XMLUni::fgWFXMLScanner))
- return new (manager) WFXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, manager);
+ return new (manager) WFXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, grammarResolver, manager);
else if (XMLString::equals(scannerName, XMLUni::fgIGXMLScanner))
- return new (manager) IGXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, manager);
+ return new (manager) IGXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, grammarResolver, manager);
else if (XMLString::equals(scannerName, XMLUni::fgSGXMLScanner))
- return new (manager) SGXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, manager);
+ return new (manager) SGXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, grammarResolver, manager);
else if (XMLString::equals(scannerName, XMLUni::fgDGXMLScanner))
- return new (manager) DGXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, manager);
+ return new (manager) DGXMLScanner(docHandler, docTypeHandler,
entityHandler, errReporter, valToAdopt, grammarResolver, manager);
// REVISIT: throw an exception or return a default one?
return 0;
1.4 +6 -0 xml-xerces/c/src/xercesc/internal/XMLScannerResolver.hpp
Index: XMLScannerResolver.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScannerResolver.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XMLScannerResolver.hpp 16 May 2003 21:36:58 -0000 1.3
+++ XMLScannerResolver.hpp 10 Jul 2003 19:47:24 -0000 1.4
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.4 2003/07/10 19:47:24 peiyongz
+ * Stateless Grammar: Initialize scanner with grammarResolver,
+ * creating grammar through grammarPool
+ *
* Revision 1.3 2003/05/16 21:36:58 knoaman
* Memory manager implementation: Modify constructors to pass in the memory manager.
*
@@ -90,6 +94,7 @@
(
const XMLCh* const scannerName
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
@@ -101,12 +106,14 @@
, XMLEntityHandler* const entityHandler
, XMLErrorReporter* const errReporter
, XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
static XMLScanner* getDefaultScanner
(
XMLValidator* const valToAdopt
+ , GrammarResolver* const grammarResolver
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]