roshan      2003/07/26 23:56:39

  Modified:    c/src/soap SoapSerializer.h SoapSerializer.cpp SoapMethod.h
                        SoapMethod.cpp HeaderBlock.h
  Log:
  after introducing new Serializer interfaces IWrapperSoapSerializer and 
IHandlerSoapSerializer
  
  Revision  Changes    Path
  1.7       +10 -3     xml-axis/c/src/soap/SoapSerializer.h
  
  Index: SoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/SoapSerializer.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SoapSerializer.h  23 Jul 2003 10:04:46 -0000      1.6
  +++ SoapSerializer.h  27 Jul 2003 06:56:39 -0000      1.7
  @@ -72,7 +72,9 @@
   #pragma once
   #endif // _MSC_VER > 1000
   
  -#include "../common/ISoapSerializer.h"
  +#include "../common/IWrapperSoapSerializer.h"
  +#include "../common/IHandlerSoapSerializer.h"
  +//#include "../common/ISoapSerializer.h"
   #include "SoapEnvVersions.h"
   
   class SoapEnvelope;
  @@ -80,8 +82,9 @@
   class SoapMethod;
   class SoapBody;
   class SoapFault;
  +class HeaderBlock;
   
  -class SoapSerializer : public ISoapSerializer                                       
                   
  +class SoapSerializer : public virtual IWrapperSoapSerializer, public virtual 
IHandlerSoapSerializer /*: public ISoapSerializer*/
   {
   private:
        static int iCounter;
  @@ -93,7 +96,8 @@
   public:
        ISoapMethod* createSoapMethod();        
        int flushSerializedBuffer();
  -     ISoapSerializer& operator<<(const char *cSerialized);
  +     IWrapperSoapSerializer& operator<<(const char *cSerialized);
  +     //ISoapSerializer& operator<<(const char *cSerialized);
        const char* getNewNamespacePrefix();
        int setSoapVersion(SOAP_VERSION);
        void init();
  @@ -108,6 +112,9 @@
        IParam* setResponseParam(XSDTYPE nType, uParamValue Value);
        IArrayBean* makeArrayBean(XSDTYPE nType, void* pArray);
   public: //Basic Type Serializing methods
  +     int removeSoapHeader();
  +     int setHeaderBlock(HeaderBlock* pHeaderBlock);
  +     IHeaderBlock* createHeaderBlock();
        string& SerializeBasicType(const string& sName, string& sValue, XSDTYPE 
type=XSD_STRING);
        string& SerializeBasicType(const string& sName, float fValue);
        string& SerializeBasicType(const string& sName, int nValue);
  
  
  
  1.10      +48 -3     xml-axis/c/src/soap/SoapSerializer.cpp
  
  Index: SoapSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/SoapSerializer.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SoapSerializer.cpp        24 Jul 2003 09:57:04 -0000      1.9
  +++ SoapSerializer.cpp        27 Jul 2003 06:56:39 -0000      1.10
  @@ -69,6 +69,7 @@
   
   #include "SoapEnvelope.h"
   #include "SoapSerializer.h"
  +#include "HeaderBlock.h"
   #include "../common/GDefine.h"
   #include "../common/Packet.h"
   #include "../common/ArrayBean.h"
  @@ -104,8 +105,14 @@
        int intStatus= FAIL;
   
        if(m_pSoapEnvelope) {
  -             m_pSoapEnvelope->setSoapHeader(pSoapHeader);
  -             intStatus= SUCCESS;
  +
  +             if((m_pSoapEnvelope)&& (m_pSoapEnvelope->m_pSoapHeader)) {
  +                     //no need to create a SOAP Header, it already exists
  +                     intStatus= OBJECT_ALREADY_EXISTS;
  +             } else {
  +                     m_pSoapEnvelope->setSoapHeader(pSoapHeader);
  +                     intStatus= SUCCESS;
  +             }
        }
   
        return intStatus;
  @@ -218,7 +225,7 @@
        return cCounter;
   }
   
  -ISoapSerializer& SoapSerializer::operator <<(const char *cSerialized)
  +IWrapperSoapSerializer& SoapSerializer::operator <<(const char *cSerialized)
   {
        int iTmpSerBufferSize= strlen(cSerialized);
        if((m_iCurrentSerBufferSize+iTmpSerBufferSize)>1023) {
  @@ -274,4 +281,42 @@
   string& SoapSerializer::SerializeBasicType(const string& sName, int nValue)
   {
        return BasicTypeSerializer::serialize(sName, nValue);           
  +}
  +
  +IHeaderBlock* SoapSerializer::createHeaderBlock()
  +{
  +     HeaderBlock* pHeaderBlock= new HeaderBlock();
  +     setHeaderBlock(pHeaderBlock);
  +     return pHeaderBlock;
  +}
  +
  +int SoapSerializer::setHeaderBlock(HeaderBlock *pHeaderBlock)
  +{
  +     int intStatus= FAIL;
  +
  +     if((m_pSoapEnvelope)&& (m_pSoapEnvelope->m_pSoapHeader)) {
  +             //no need to create a SOAP Header, it already exists
  +     } else {
  +             SoapHeader* pSoapHeader= new SoapHeader();
  +             setSoapHeader(pSoapHeader);
  +     }
  +
  +     m_pSoapEnvelope->m_pSoapHeader->addHeaderBlock(pHeaderBlock);
  +     intStatus= SUCCESS;
  +
  +     return intStatus;
  +}
  +
  +/*
  + *This method not only removes the existing SoapHeader, but also removes
  + * all the existing HeaderBlocks which are associated with this SoapHeader.
  + * Therefore the caller of this method has to be exactly sure whether he wants to
  + * do this.
  + */
  +int SoapSerializer::removeSoapHeader()
  +{
  +     delete m_pSoapEnvelope->m_pSoapHeader;
  +     m_pSoapEnvelope->m_pSoapHeader= NULL;
  +
  +     return SUCCESS;
   }
  
  
  
  1.6       +1 -2      xml-axis/c/src/soap/SoapMethod.h
  
  Index: SoapMethod.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/SoapMethod.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SoapMethod.h      16 Jul 2003 14:21:08 -0000      1.5
  +++ SoapMethod.h      27 Jul 2003 06:56:39 -0000      1.6
  @@ -130,8 +130,7 @@
        void setLocalName(const string &localname);
        void setPrefix(const string &prefix);
        SoapMethod();
  -     virtual ~SoapMethod();
  -
  +     virtual ~SoapMethod();  
   };
   
   #endif // 
!defined(AFX_SOAPMETHOD_H__85B1A3F0_CD15_4607_AAAB_665A66AA8546__INCLUDED_)
  
  
  
  1.7       +1 -1      xml-axis/c/src/soap/SoapMethod.cpp
  
  Index: SoapMethod.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/SoapMethod.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SoapMethod.cpp    21 Jul 2003 14:21:09 -0000      1.6
  +++ SoapMethod.cpp    27 Jul 2003 06:56:39 -0000      1.7
  @@ -283,4 +283,4 @@
   
        return SUCCESS; 
   }
  -*/
  \ No newline at end of file
  +*/
  
  
  
  1.5       +2 -1      xml-axis/c/src/soap/HeaderBlock.h
  
  Index: HeaderBlock.h
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/soap/HeaderBlock.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- HeaderBlock.h     15 Jul 2003 07:07:17 -0000      1.4
  +++ HeaderBlock.h     27 Jul 2003 06:56:39 -0000      1.5
  @@ -79,6 +79,7 @@
   using namespace std;
   
   class BasicNode;
  +#include "../common/IHeaderBlock.h"
   
   /**
    *   The Header block of a SOAP Header according to SOAP 1.2 specification.
  @@ -104,7 +105,7 @@
    *   @brief  The Header block of a SOAP Header according to SOAP 1.2 specification.
    */
   
  -class HeaderBlock  
  +class HeaderBlock : public IHeaderBlock
   {
   
   private:     
  
  
  

Reply via email to