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