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/07/31 19:09:59 UTC

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

peiyongz    2003/07/31 10:09:59

  Modified:    c/src/xercesc/validators/DTD DTDGrammar.cpp DTDGrammar.hpp
  Log:
  Grammar embed grammar description
  
  Revision  Changes    Path
  1.7       +27 -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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DTDGrammar.cpp	18 May 2003 14:02:06 -0000	1.6
  +++ DTDGrammar.cpp	31 Jul 2003 17:09:59 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/07/31 17:09:59  peiyongz
  + * Grammar embed grammar description
  + *
    * Revision 1.6  2003/05/18 14:02:06  knoaman
    * Memory manager implementation: pass per instance manager.
    *
  @@ -95,6 +98,7 @@
   #include <xercesc/util/XMLUniDefs.hpp>
   #include <xercesc/util/XMLUni.hpp>
   #include <xercesc/validators/DTD/DTDGrammar.hpp>
  +#include <xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -108,6 +112,7 @@
       , fEntityDeclPool(0)
       , fNotationDeclPool(0)
       , fValidated(false)
  +    , fGramDesc(0)
   {
       //
       //  Init all the pool members.
  @@ -120,6 +125,9 @@
       fEntityDeclPool = new (fMemoryManager) NameIdPool<DTDEntityDecl>(109, 128, fMemoryManager);
       fNotationDeclPool = new (fMemoryManager) NameIdPool<XMLNotationDecl>(109, 128, fMemoryManager);
   
  +    //REVISIT: use grammarPool to create
  +    fGramDesc = new (fMemoryManager) XMLDTDDescriptionImpl(XMLUni::fgDTDEntityString, fMemoryManager);
  +
       //
       //  Call our own reset method. This lets us have the pool setup stuff
       //  done in just one place (because this stame setup stuff has to be
  @@ -134,6 +142,7 @@
       delete fElemNonDeclPool;
       delete fEntityDeclPool;
       delete fNotationDeclPool;
  +    delete fGramDesc;
   }
   
   // -----------------------------------------------------------------------
  @@ -219,6 +228,24 @@
       fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgGT, chCloseAngle, true, true));
       fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgQuot, chDoubleQuote, true, true));
       fEntityDeclPool->put(new DTDEntityDecl(XMLUni::fgApos, chSingleQuote, true, true));
  +}
  +
  +void DTDGrammar::setGrammarDescription( XMLGrammarDescription* gramDesc)
  +{
  +    if ((!gramDesc) || 
  +        (gramDesc->getGrammarType() != Grammar::DTDGrammarType))
  +        return;
  +
  +    if (fGramDesc)
  +        delete fGramDesc;
  +
  +    //adopt the grammar Description
  +    fGramDesc = (XMLDTDDescription*) gramDesc;
  +}
  +
  +XMLGrammarDescription*  DTDGrammar::getGrammarDescription() const
  +{
  +    return fGramDesc;
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.8       +12 -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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DTDGrammar.hpp	16 May 2003 21:43:19 -0000	1.7
  +++ DTDGrammar.hpp	31 Jul 2003 17:09:59 -0000	1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/07/31 17:09:59  peiyongz
  + * Grammar embed grammar description
  + *
    * Revision 1.7  2003/05/16 21:43:19  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -105,6 +108,8 @@
   #include <xercesc/validators/common/Grammar.hpp>
   #include <xercesc/validators/DTD/DTDElementDecl.hpp>
   #include <xercesc/validators/DTD/DTDEntityDecl.hpp>
  +#include <xercesc/framework/XMLDTDDescription.hpp>
  +
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -230,6 +235,9 @@
       // -----------------------------------------------------------------------
       void setRootElemId(unsigned int rootElemId);
   
  +    virtual void                    setGrammarDescription( XMLGrammarDescription*);
  +    virtual XMLGrammarDescription*  getGrammarDescription() const;
  +
       // -----------------------------------------------------------------------
       //  Content management methods
       // -----------------------------------------------------------------------
  @@ -272,6 +280,9 @@
       //      Indicates if the content of the Grammar has been pre-validated
       //      or not. When using a cached grammar, no need for pre content
       //      validation.
  +    //
  +    //  fGramDesc: adopted
  +    //
       // -----------------------------------------------------------------------
       MemoryManager*               fMemoryManager;
       NameIdPool<DTDElementDecl>*  fElemDeclPool;
  @@ -280,6 +291,7 @@
       NameIdPool<XMLNotationDecl>* fNotationDeclPool;
       unsigned int                 fRootElemId;
       bool                         fValidated;
  +    XMLDTDDescription*           fGramDesc;
   };
   
   
  
  
  

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