peiyongz    2003/11/03 14:01:27

  Modified:    c/src/xercesc/internal XTemplateSerializer.cpp
  Log:
  Store/Load keys separately from SchemaElementDecl
  
  Revision  Changes    Path
  1.4       +35 -16    xml-xerces/c/src/xercesc/internal/XTemplateSerializer.cpp
  
  Index: XTemplateSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XTemplateSerializer.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XTemplateSerializer.cpp   31 Oct 2003 22:15:31 -0000      1.3
  +++ XTemplateSerializer.cpp   3 Nov 2003 22:01:27 -0000       1.4
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.4  2003/11/03 22:01:27  peiyongz
  + * Store/Load keys separately from SchemaElementDecl
  + *
    * Revision 1.3  2003/10/31 22:15:31  peiyongz
    * fix bug in creating ElemVector
    *
  @@ -1574,20 +1577,28 @@
           int itemNumber = 0;
           RefHash3KeysIdPoolEnumerator<SchemaElementDecl> e(objToStore);
   
  -        while (e.hasMoreElements())
  +        XMLCh*     key1;
  +        int        key2;
  +        int        key3;
  +
  +        while (e.hasMoreKeys())
           {
  -            e.nextElement();
  +            e.nextElementKey((void*&)key1, key2, key3);
               itemNumber++;
           }
   
           serEng<<itemNumber;
  -        e.Reset();
  +        e.resetKey();
   
  -        while (e.hasMoreElements())
  -        {
  -            //there is no e.nextElementKey() for RefHash3KeysIdPoolEnumerator
  -            SchemaElementDecl& data = e.nextElement();
  -            data.serialize(serEng);
  +        while (e.hasMoreKeys())
  +        {           
  +            e.nextElementKey((void*&)key1, key2, key3);
  +            serEng.writeString(key1);
  +            serEng<<key2;
  +            serEng<<key3;
  +
  +            SchemaElementDecl* data = objToStore->getByKey(key1, key2, key3);
  +            serEng<<data;
           }
   
       }
  @@ -1621,15 +1632,23 @@
           int itemNumber = 0;
           serEng>>itemNumber;
   
  +        XMLCh*     key1;
  +        int        key2;
  +        int        key3;
           for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  -        {               
  -            SchemaElementDecl*  elemDecl = new (serEng.getMemoryManager()) 
  -                                           
SchemaElementDecl(serEng.getMemoryManager());
  -            elemDecl->serialize(serEng);
  -            (*objToLoad)->put(elemDecl->getBaseName()
  -                            , elemDecl->getURI()
  -                            , elemDecl->getEnclosingScope()
  +        {                       
  +            serEng.readString(key1);
  +            serEng>>key2;
  +            serEng>>key3;
  +
  +            SchemaElementDecl*  elemDecl;
  +            serEng>>elemDecl;
  +
  +            (*objToLoad)->put(key1
  +                            , key2
  +                            , key3
                               , elemDecl);
  +
           }
      
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to