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/14 17:20:42 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/DTD DTDGrammar.cpp DTDGrammar.hpp XMLDTDDescriptionImpl.cpp XMLDTDDescriptionImpl.hpp

peiyongz    2003/10/14 08:20:42

  Modified:    c/src/xercesc/validators/DTD DTDGrammar.cpp DTDGrammar.hpp
                        XMLDTDDescriptionImpl.cpp XMLDTDDescriptionImpl.hpp
  Log:
  Implementation of Serialization/Deserialization
  
  Revision  Changes    Path
  1.10      +95 -0     xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp
  
  Index: DTDGrammar.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DTDGrammar.cpp	22 Sep 2003 19:49:02 -0000	1.9
  +++ DTDGrammar.cpp	14 Oct 2003 15:20:42 -0000	1.10
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.10  2003/10/14 15:20:42  peiyongz
  + * Implementation of Serialization/Deserialization
  + *
    * Revision 1.9  2003/09/22 19:49:02  neilg
    * implement change to Grammar::putElem(XMLElementDecl, bool).  If Grammars are used only to hold declared objects, there will be no need for the fElemNonDeclPool tables; make Grammar implementations lazily create them only if the application requires them (which good cpplications should not.)
    *
  @@ -294,6 +297,98 @@
   XMLGrammarDescription*  DTDGrammar::getGrammarDescription() const
   {
       return fGramDesc;
  +}
  +
  +/***
  + * Support for Serialization/De-serialization
  + ***/
  +
  +IMPL_XSERIALIZABLE_TOCREATE(DTDGrammar)
  +
  +void DTDGrammar::serialize(XSerializeEngine& serEng)
  +{
  +
  +    Grammar::serialize(serEng);
  +
  +/***
  +    NameIdPool<DTDElementDecl>*       fElemDeclPool;
  +    NameIdPool<DTDElementDecl>*       fElemNonDeclPool;
  +    NameIdPool<DTDEntityDecl>*        fEntityDeclPool;
  +    NameIdPool<XMLNotationDecl>*      fNotationDeclPool;
  +    unsigned int                      fRootElemId;
  +    bool                              fValidated;
  +    XMLDTDDescription*                fGramDesc;
  +***/
  +
  +    if (serEng.isStoring())
  +    {
  +        //don't serialize fDefaultEntities
  +
  +        /***
  +         *
  +         * Serialize NameIdPool<DTDElementDecl>*       fElemDeclPool;
  +         *
  +         ***/
  +
  +        /***
  +         *
  +         * Serialize NameIdPool<DTDElementDecl>*       fElemNonDeclPool;
  +         * TODO: will this data member removed?
  +         ***/
  +
  +        /***
  +         *
  +         * Serialize NameIdPool<DTDEntityDecl>*        fEntityDeclPool;
  +         *
  +         ***/
  +
  +        /***
  +         *
  +         * Serialize NameIdPool<XMLNotationDecl>*      fNotationDeclPool;
  +         *
  +         ***/
  +
  +        serEng<<fRootElemId;
  +        serEng<<fValidated;
  +        serEng<<fGramDesc;
  +
  +    }
  +    else
  +    {
  +
  +       /***
  +         *
  +         * Deserialize NameIdPool<DTDElementDecl>*       fElemDeclPool;
  +         * 
  +         ***/
  +
  +       /***
  +         *
  +         * Deserialize NameIdPool<DTDElementDecl>*       fElemNonDeclPool;
  +         * TODO: will this data member removed?
  +         ***/
  +
  +        /***
  +         *
  +         * Deserialize NameIdPool<DTDEntityDecl>*        fEntityDeclPool;
  +         *
  +         ***/
  +
  +        /***
  +         *
  +         * Deerialize NameIdPool<XMLNotationDecl>*      fNotationDeclPool;
  +         *
  +         ***/
  +
  +        serEng>>fRootElemId;
  +        serEng>>fValidated;
  +
  +        XMLDTDDescriptionImpl* gramDesc;
  +        serEng>>gramDesc;
  +        fGramDesc = gramDesc;
  +
  +    }
  +
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.11      +8 -0      xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.hpp
  
  Index: DTDGrammar.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.hpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DTDGrammar.hpp	22 Sep 2003 19:49:02 -0000	1.10
  +++ DTDGrammar.hpp	14 Oct 2003 15:20:42 -0000	1.11
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.11  2003/10/14 15:20:42  peiyongz
  + * Implementation of Serialization/Deserialization
  + *
    * Revision 1.10  2003/09/22 19:49:02  neilg
    * implement change to Grammar::putElem(XMLElementDecl, bool).  If Grammars are used only to hold declared objects, there will be no need for the fElemNonDeclPool tables; make Grammar implementations lazily create them only if the application requires them (which good cpplications should not.)
    *
  @@ -262,6 +265,11 @@
       //  Notification that lazy data has been deleted
       // -----------------------------------------------------------------------
       static void reinitDfltEntities();
  +
  +    /***
  +     * Support for Serialization/De-serialization
  +     ***/
  +    DECL_XSERIALIZABLE(DTDGrammar)
   
   private:
       // -----------------------------------------------------------------------
  
  
  
  1.2       +32 -2     xml-xerces/c/src/xercesc/validators/DTD/XMLDTDDescriptionImpl.cpp
  
  Index: XMLDTDDescriptionImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/XMLDTDDescriptionImpl.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLDTDDescriptionImpl.cpp	20 Jun 2003 18:39:33 -0000	1.1
  +++ XMLDTDDescriptionImpl.cpp	14 Oct 2003 15:20:42 -0000	1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/10/14 15:20:42  peiyongz
  + * Implementation of Serialization/Deserialization
  + *
    * Revision 1.1  2003/06/20 18:39:33  peiyongz
    * Stateless Grammar Pool :: Part I
    *
  @@ -106,5 +109,32 @@
   
       fRootName = XMLString::replicate(rootName, XMLGrammarDescription::getMemoryManager()); 
   }        
  +
  +/***
  + * Support for Serialization/De-serialization
  + ***/
  +
  +IMPL_XSERIALIZABLE_TOCREATE(XMLDTDDescriptionImpl)
  +
  +void XMLDTDDescriptionImpl::serialize(XSerializeEngine& serEng)
  +{
  +    XMLDTDDescription::serialize(serEng);
  +
  +    if (serEng.isStoring())
  +    {
  +        serEng.writeString(fRootName);
  +    }
  +    else
  +    {
  +        serEng.readString((XMLCh*&)fRootName);
  +    }
  +
  +}
  +
  +XMLDTDDescriptionImpl::XMLDTDDescriptionImpl(MemoryManager* const memMgr)
  +:XMLDTDDescription(memMgr)
  +,fRootName(0)
  +{
  +}
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.2       +12 -2     xml-xerces/c/src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp
  
  Index: XMLDTDDescriptionImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLDTDDescriptionImpl.hpp	20 Jun 2003 18:39:33 -0000	1.1
  +++ XMLDTDDescriptionImpl.hpp	14 Oct 2003 15:20:42 -0000	1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/10/14 15:20:42  peiyongz
  + * Implementation of Serialization/Deserialization
  + *
    * Revision 1.1  2003/06/20 18:39:33  peiyongz
    * Stateless Grammar Pool :: Part I
    *
  @@ -113,6 +116,13 @@
       virtual void                   setRootName(const XMLCh* const rootName);
       //@}
       
  +    /***
  +     * Support for Serialization/De-serialization
  +     ***/
  +    DECL_XSERIALIZABLE(XMLDTDDescriptionImpl)
  +
  +    XMLDTDDescriptionImpl(MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager);
  +
   private :
       // -----------------------------------------------------------------------
       /** name  Unimplemented copy constructor and operator= */
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org