You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2003/10/29 17:19:47 UTC
cvs commit: xml-xerces/c/src/xercesc/validators/common Grammar.cpp Grammar.hpp
peiyongz 2003/10/29 08:19:47
Modified: c/src/xercesc/validators/common Grammar.cpp Grammar.hpp
Log:
storeGrammar()/loadGrammar added
Revision Changes Path
1.2 +55 -2 xml-xerces/c/src/xercesc/validators/common/Grammar.cpp
Index: Grammar.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/Grammar.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Grammar.cpp 14 Oct 2003 15:19:24 -0000 1.1
+++ Grammar.cpp 29 Oct 2003 16:19:47 -0000 1.2
@@ -58,6 +58,9 @@
/*
* $Id$
* $Log$
+ * Revision 1.2 2003/10/29 16:19:47 peiyongz
+ * storeGrammar()/loadGrammar added
+ *
* Revision 1.1 2003/10/14 15:19:24 peiyongz
* Implementation of Serialization/Deserialization
*
@@ -65,6 +68,13 @@
#include <xercesc/validators/common/Grammar.hpp>
+//since we need to dynamically created each and every derivatives
+//during deserialization by XSerializeEngine>>Derivative, we got
+//to include all hpp
+
+#include <xercesc/validators/DTD/DTDGrammar.hpp>
+#include <xercesc/validators/schema/SchemaGrammar.hpp>
+
XERCES_CPP_NAMESPACE_BEGIN
/***
@@ -76,6 +86,49 @@
void Grammar::serialize(XSerializeEngine& serEng)
{
//no data
+}
+
+void Grammar::storeGrammar(XSerializeEngine& serEng
+ , Grammar* const grammar)
+{
+ if (grammar)
+ {
+ serEng<<(int) grammar->getGrammarType();
+ serEng<<grammar;
+ }
+ else
+ {
+ serEng<<(int) UnKnown;
+ }
+
+}
+
+Grammar* Grammar::loadGrammar(XSerializeEngine& serEng)
+{
+
+ int type;
+ serEng>>type;
+
+ switch((GrammarType)type)
+ {
+ case DTDGrammarType:
+ DTDGrammar* dtdGrammar;
+ serEng>>dtdGrammar;
+ return dtdGrammar;
+ break;
+ case SchemaGrammarType:
+ SchemaGrammar* schemaGrammar;
+ serEng>>schemaGrammar;
+ return schemaGrammar;
+ break;
+ case UnKnown:
+ return 0;
+ break;
+ default: //we treat this same as UnKnown
+ return 0;
+ break;
+ }
+
}
XERCES_CPP_NAMESPACE_END
1.9 +9 -0 xml-xerces/c/src/xercesc/validators/common/Grammar.hpp
Index: Grammar.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/Grammar.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Grammar.hpp 14 Oct 2003 15:19:24 -0000 1.8
+++ Grammar.hpp 29 Oct 2003 16:19:47 -0000 1.9
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.9 2003/10/29 16:19:47 peiyongz
+ * storeGrammar()/loadGrammar added
+ *
* Revision 1.8 2003/10/14 15:19:24 peiyongz
* Implementation of Serialization/Deserialization
*
@@ -140,6 +143,7 @@
enum GrammarType {
DTDGrammarType
, SchemaGrammarType
+ , UnKnown
};
enum {
@@ -257,6 +261,11 @@
* Support for Serialization/De-serialization
***/
DECL_XSERIALIZABLE(Grammar)
+
+ static void storeGrammar(XSerializeEngine& serEng
+ , Grammar* const grammar);
+
+ static Grammar* loadGrammar(XSerializeEngine& serEng);
protected :
// -----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org