You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ra...@apache.org on 2005/01/04 06:50:02 UTC

cvs commit: ws-axis/c/vc AxisServerDLL.dsp AxisClientDLL.dsp

rangika     2005/01/03 21:50:01

  Modified:    c/src/soap SoapSerializer.cpp SoapSerializer.h
               c/include/axis IWrapperSoapSerializer.hpp
               c/vc     AxisServerDLL.dsp AxisClientDLL.dsp
  Added:       c/src/soap SoapAttachementHeaders.cpp
                        SoapAttachementHeaders.hpp SoapAttachment.cpp
                        SoapAttachment.hpp
  Log:
  Serializer support for Attachments
  
  Revision  Changes    Path
  1.80      +43 -2     ws-axis/c/src/soap/SoapSerializer.cpp
  
  Index: SoapSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- SoapSerializer.cpp	30 Nov 2004 15:52:04 -0000	1.79
  +++ SoapSerializer.cpp	4 Jan 2005 05:50:00 -0000	1.80
  @@ -233,7 +233,10 @@
       {
           serialize("<?xml version='1.0' encoding='utf-8' ?>", NULL);
           iStatus= m_pSoapEnvelope->serialize(*this, 
  -            (SOAP_VERSION)m_iSoapVersion);
  +            (SOAP_VERSION)m_iSoapVersion);		
  +		
  +		serializeAttachments(*this);
  +
       }
       }
       catch(AxisSoapException& e)
  @@ -916,5 +919,43 @@
       return AXIS_SUCCESS;
   }
   
  -AXIS_CPP_NAMESPACE_END
  +void SoapSerializer::serializeAttachments(SoapSerializer &pSZ)
  +{
  +	/*serializing the attachements*/
  +
  +	map<AxisXMLString, SoapAttachment*>::iterator itCurrAttach= m_SoapAttachments.begin();
  +
  +	while(itCurrAttach != m_SoapAttachments.end())
  +    {        
  +        ((*itCurrAttach).second)->serialize(pSZ);
  +
  +        itCurrAttach++;
  +    }
  +}
  +
  +void SoapSerializer::addAttachment(AxisString id, SoapAttachment* objAttach)
  +{
  +	m_SoapAttachments[id] = objAttach;
  +}
  +
  +void SoapSerializer::addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue)
  +{
  +
  +	if (m_SoapAttachments[achId] == NULL) {
  +		m_SoapAttachments[achId] = new SoapAttachment();		
  +	}
  +
  +	m_SoapAttachments[achId]->addHeader(achHeaderName, achHeaderValue);
  +	
  +}
  +
  +void SoapSerializer::addAttachmentBody(const AxisChar* achId, xsd__base64Binary *pAttchBody)
  +{
  +	if (m_SoapAttachments[achId] == NULL) {
  +		m_SoapAttachments[achId] = new SoapAttachment();		
  +	}
  +
  +	m_SoapAttachments[achId]->addBody(pAttchBody);
  +}
   
  +AXIS_CPP_NAMESPACE_END
  \ No newline at end of file
  
  
  
  1.32      +7 -1      ws-axis/c/src/soap/SoapSerializer.h
  
  Index: SoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.h,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- SoapSerializer.h	23 Nov 2004 17:21:05 -0000	1.31
  +++ SoapSerializer.h	4 Jan 2005 05:50:00 -0000	1.32
  @@ -22,6 +22,7 @@
   
   #include "../common/BasicTypeSerializer.h"
   #include <axis/WSDDDefines.hpp>
  +#include "SoapAttachment.hpp"
   
   AXIS_CPP_NAMESPACE_START
   
  @@ -47,9 +48,10 @@
   class SoapSerializer : public IHandlerSoapSerializer
   {
   private:
  +	map<AxisString, SoapAttachment*> m_SoapAttachments;
       int m_nCounter;
       AxisChar m_Buf[BTS_BUFFSIZE];
  -    SoapEnvelope* m_pSoapEnvelope;    
  +    SoapEnvelope* m_pSoapEnvelope;    	
       int m_iSoapVersion;
       /* Current Serialization Style */
       AXIS_BINDING_STYLE m_nStyle;
  @@ -149,9 +151,13 @@
       IHeaderBlock* createHeaderBlock();
       
   private:
  +	void serializeAttachments(SoapSerializer &pSZ);
       BasicTypeSerializer m_BTSZ;
       SOAPTransport* m_pOutputStream;
   public:
  +	void addAttachmentBody(const AxisChar* achId, xsd__base64Binary* pAttchBody);
  +	void addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue);
  +	void addAttachment(AxisString id, SoapAttachment* objAttach);
   	IHeaderBlock* getHeaderBlock(const AxisChar* pcName, const AxisChar* pcNamespace);
   	IHeaderBlock* getHeaderBlock();
   	IHeaderBlock* getFirstHeaderBlock();
  
  
  
  1.1                  ws-axis/c/src/soap/SoapAttachementHeaders.cpp
  
  Index: SoapAttachementHeaders.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * @author Rangika Mendis (rangika@opensource.lk)
   * @author Nithyakala Thangarajah (nithya@opensource.lk)
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   *
   */
  
  
  // SoapAttachementHeaders.cpp: implementation of the SoapAttachementHeaders class.
  //
  //////////////////////////////////////////////////////////////////////
  
  #include "SoapAttachementHeaders.hpp"
  #include "SoapSerializer.h"
  
  AXIS_CPP_NAMESPACE_START
  
  //////////////////////////////////////////////////////////////////////
  // Construction/Destruction
  //////////////////////////////////////////////////////////////////////
  
  SoapAttachementHeaders::SoapAttachementHeaders()
  {
  
  }
  
  SoapAttachementHeaders::~SoapAttachementHeaders()
  {
  
  }
  
  void SoapAttachementHeaders::addHeader(AxisString name, AxisString value)
  {
  	m_AttachHeaders[name] = value;
  }
  
  void SoapAttachementHeaders::serialize(SoapSerializer &pSZ)
  {
  	map<AxisString, AxisString>::iterator itCurrAttchHeader= m_AttachHeaders.begin();
  
  	while(itCurrAttchHeader != m_AttachHeaders.end())
      {        
  		pSZ.serialize(((*itCurrAttchHeader).first).c_str(), ": ", NULL);
  		pSZ.serialize(((*itCurrAttchHeader).second).c_str(), "\n", NULL);       
  
          itCurrAttchHeader++;
      }
  }
  
  AXIS_CPP_NAMESPACE_END
  
  
  1.1                  ws-axis/c/src/soap/SoapAttachementHeaders.hpp
  
  Index: SoapAttachementHeaders.hpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * @author Rangika Mendis (rangika@opensource.lk)
   * @author Nithyakala Thangarajah (nithya@opensource.lk)
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   *
   */
  
  // SoapAttachementHeaders.h: interface for the SoapAttachementHeaders class.
  //
  //////////////////////////////////////////////////////////////////////
  
  #if !defined(AFX_SOAPATTACHEMENTHEADERS_H__88A54506_DC18_41D4_B484_AB877ADC42D4__INCLUDED_)
  #define AFX_SOAPATTACHEMENTHEADERS_H__88A54506_DC18_41D4_B484_AB877ADC42D4__INCLUDED_
  
  #if _MSC_VER > 1000
  #pragma once
  #endif // _MSC_VER > 1000
  
  #pragma warning( disable : 4786 )
  
  #include <map>
  #include <string>
  #include <axis/GDefine.hpp>
  
  AXIS_CPP_NAMESPACE_START
  using namespace std;
  
  class SoapSerializer;
  
  class SoapAttachementHeaders  
  {
  private:
  	map<AxisString, AxisString> m_AttachHeaders;
  public:
  	
  	void serialize(SoapSerializer& pSZ);
  	void addHeader(AxisString name, AxisString value);
  	SoapAttachementHeaders();
  	virtual ~SoapAttachementHeaders();
  
  };
  
  AXIS_CPP_NAMESPACE_END
  #endif // !defined(AFX_SOAPATTACHEMENTHEADERS_H__88A54506_DC18_41D4_B484_AB877ADC42D4__INCLUDED_)
  
  
  
  1.1                  ws-axis/c/src/soap/SoapAttachment.cpp
  
  Index: SoapAttachment.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * @author Rangika Mendis (rangika@opensource.lk)
   * @author Nithyakala Thangarajah (nithya@opensource.lk)
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   *
   */
  
  // SoapAttachment.cpp: implementation of the SoapAttachment class.
  //
  //////////////////////////////////////////////////////////////////////
  
  #include "SoapAttachment.hpp"
  #include "SoapSerializer.h"
  
  AXIS_CPP_NAMESPACE_START
  
  //////////////////////////////////////////////////////////////////////
  // Construction/Destruction
  //////////////////////////////////////////////////////////////////////
  
  SoapAttachment::SoapAttachment()
  {	
  	//Assigning to NULL
  	m_AttachementBody = 0;
  }
  
  SoapAttachment::~SoapAttachment()
  {
  
  }
  
  void SoapAttachment::addHeader(AxisString name, AxisString value)
  {
  	m_AttachementHeaders.addHeader(name, value);
  }
  
  /*
  void SoapAttachment::addBody(AxisString sBody)
  {
  	m_AttachementBody = sBody;
  }
  */
  
  void SoapAttachment::addBody(xsd__base64Binary* objBody)
  {
  	m_AttachementBody = objBody;
  }
  
  void SoapAttachment::serialize(SoapSerializer &pSZ)
  {
  	/* Serialize the Attachment Headers */
  	pSZ.serialize("\n", NULL);
  	m_AttachementHeaders.serialize(pSZ);
  
  	/* Serialize the Attachment Body */
  	//pSZ.serialize("\n", m_AttachementBody.c_str(), NULL);
  
  	if (m_AttachementBody) {
  		pSZ.serialize("\n", NULL);
  		pSZ.serializeAsChardata(m_AttachementBody, XSD_BASE64BINARY);
  	}
  
  	pSZ.serialize("\n", NULL);
  }
  
  AXIS_CPP_NAMESPACE_END
  
  
  1.1                  ws-axis/c/src/soap/SoapAttachment.hpp
  
  Index: SoapAttachment.hpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * @author Rangika Mendis (rangika@opensource.lk)
   * @author Nithyakala Thangarajah (nithya@opensource.lk)
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   *
   */
  
  
  // SoapAttachment.h: interface for the SoapAttachment class.
  //
  //////////////////////////////////////////////////////////////////////
  
  #if !defined(AFX_SOAPATTACHMENT_H__7E7B50DC_21AF_4C6E_83E0_F77985A38E43__INCLUDED_)
  #define AFX_SOAPATTACHMENT_H__7E7B50DC_21AF_4C6E_83E0_F77985A38E43__INCLUDED_
  
  #if _MSC_VER > 1000
  #pragma once
  #endif // _MSC_VER > 1000
  
  #include <axis/GDefine.hpp>
  #include <axis/AxisUserAPI.hpp>
  #include "SoapAttachementHeaders.hpp"
  
  #include <string>
  using namespace std;
  
  AXIS_CPP_NAMESPACE_START
  
  class SoapSerializer;
  
  class SoapAttachment
  {
  private:
  	SoapAttachementHeaders m_AttachementHeaders;
  	xsd__base64Binary* m_AttachementBody;
  public:
  	
  	void serialize(SoapSerializer& pSZ);
  	void addBody(xsd__base64Binary* objBody);	
  	void addHeader(AxisString name, AxisString value);
  	SoapAttachment();
  	virtual ~SoapAttachment();	
  };
  
  AXIS_CPP_NAMESPACE_END
  #endif // !defined(AFX_SOAPATTACHMENT_H__7E7B50DC_21AF_4C6E_83E0_F77985A38E43__INCLUDED_)
  
  
  
  1.2       +10 -0     ws-axis/c/include/axis/IWrapperSoapSerializer.hpp
  
  Index: IWrapperSoapSerializer.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/IWrapperSoapSerializer.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IWrapperSoapSerializer.hpp	23 Nov 2004 11:11:11 -0000	1.1
  +++ IWrapperSoapSerializer.hpp	4 Jan 2005 05:50:00 -0000	1.2
  @@ -31,6 +31,12 @@
    *
    */
   
  +/*
  + * Revision 1.1  2005/01/02 Roshan
  + * Added addAttachmentBody
  + * Added addAttachmentHeader
  + */
  +
   AXIS_CPP_NAMESPACE_START
   
   class IWrapperSoapSerializer
  @@ -120,6 +126,10 @@
       virtual int serializeAnyObject(AnyType* pAnyObject)=0;
   
       virtual int serializeAsChardata(void* pValue, XSDTYPE type)=0;
  +
  +	virtual void addAttachmentBody(const AxisChar* achId, xsd__base64Binary* pAttchBody)=0;
  +
  +	virtual void addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue)=0;
   };
   
   AXIS_CPP_NAMESPACE_END
  
  
  
  1.21      +20 -0     ws-axis/c/vc/AxisServerDLL.dsp
  
  Index: AxisServerDLL.dsp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/vc/AxisServerDLL.dsp,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- AxisServerDLL.dsp	15 Dec 2004 12:42:21 -0000	1.20
  +++ AxisServerDLL.dsp	4 Jan 2005 05:50:00 -0000	1.21
  @@ -262,6 +262,14 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\src\soap\SoapAttachementHeaders.cpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\src\soap\SoapAttachment.cpp
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\src\soap\SoapBody.cpp
   # End Source File
   # Begin Source File
  @@ -351,6 +359,18 @@
   # Begin Source File
   
   SOURCE=..\include\axis\server\Packet.hpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\src\soap\SoapAttachementHeaders.hpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\src\soap\SoapAttachment.hpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\src\soap\SoapSerializer.h
   # End Source File
   # End Group
   # Begin Group "Resource Files"
  
  
  
  1.24      +8 -0      ws-axis/c/vc/AxisClientDLL.dsp
  
  Index: AxisClientDLL.dsp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/vc/AxisClientDLL.dsp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- AxisClientDLL.dsp	24 Nov 2004 14:19:30 -0000	1.23
  +++ AxisClientDLL.dsp	4 Jan 2005 05:50:00 -0000	1.24
  @@ -262,6 +262,14 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=..\src\soap\SoapAttachementHeaders.cpp
  +# End Source File
  +# Begin Source File
  +
  +SOURCE=..\src\soap\SoapAttachment.cpp
  +# End Source File
  +# Begin Source File
  +
   SOURCE=..\src\soap\SoapBody.cpp
   # End Source File
   # Begin Source File
  
  
  

Re: cvs commit: ws-axis/c/vc AxisServerDLL.dsp AxisClientDLL.dsp

Posted by Roshan Weerasuriya <ro...@opensource.lk>.
hi All,

I tested this code in Linux and it works fine. I Added the new files to
the src/soap/Makefile.am entries. There is no affect to the existing
code.

Roshan

On Tue, 2005-01-04 at 11:50, rangika@apache.org wrote:
> rangika     2005/01/03 21:50:01
> 
>   Modified:    c/src/soap SoapSerializer.cpp SoapSerializer.h
>                c/include/axis IWrapperSoapSerializer.hpp
>                c/vc     AxisServerDLL.dsp AxisClientDLL.dsp
>   Added:       c/src/soap SoapAttachementHeaders.cpp
>                         SoapAttachementHeaders.hpp SoapAttachment.cpp
>                         SoapAttachment.hpp
>   Log:
>   Serializer support for Attachments
>   
>   Revision  Changes    Path
>   1.80      +43 -2     ws-axis/c/src/soap/SoapSerializer.cpp
>   
>   Index: SoapSerializer.cpp
>   ===================================================================
>   RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
>   retrieving revision 1.79
>   retrieving revision 1.80
>   diff -u -r1.79 -r1.80
>   --- SoapSerializer.cpp	30 Nov 2004 15:52:04 -0000	1.79
>   +++ SoapSerializer.cpp	4 Jan 2005 05:50:00 -0000	1.80
>   @@ -233,7 +233,10 @@
>        {
>            serialize("<?xml version='1.0' encoding='utf-8' ?>", NULL);
>            iStatus= m_pSoapEnvelope->serialize(*this, 
>   -            (SOAP_VERSION)m_iSoapVersion);
>   +            (SOAP_VERSION)m_iSoapVersion);		
>   +		
>   +		serializeAttachments(*this);
>   +
>        }
>        }
>        catch(AxisSoapException& e)
>   @@ -916,5 +919,43 @@
>        return AXIS_SUCCESS;
>    }
>    
>   -AXIS_CPP_NAMESPACE_END
>   +void SoapSerializer::serializeAttachments(SoapSerializer &pSZ)
>   +{
>   +	/*serializing the attachements*/
>   +
>   +	map<AxisXMLString, SoapAttachment*>::iterator itCurrAttach= m_SoapAttachments.begin();
>   +
>   +	while(itCurrAttach != m_SoapAttachments.end())
>   +    {        
>   +        ((*itCurrAttach).second)->serialize(pSZ);
>   +
>   +        itCurrAttach++;
>   +    }
>   +}
>   +
>   +void SoapSerializer::addAttachment(AxisString id, SoapAttachment* objAttach)
>   +{
>   +	m_SoapAttachments[id] = objAttach;
>   +}
>   +
>   +void SoapSerializer::addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue)
>   +{
>   +
>   +	if (m_SoapAttachments[achId] == NULL) {
>   +		m_SoapAttachments[achId] = new SoapAttachment();		
>   +	}
>   +
>   +	m_SoapAttachments[achId]->addHeader(achHeaderName, achHeaderValue);
>   +	
>   +}
>   +
>   +void SoapSerializer::addAttachmentBody(const AxisChar* achId, xsd__base64Binary *pAttchBody)
>   +{
>   +	if (m_SoapAttachments[achId] == NULL) {
>   +		m_SoapAttachments[achId] = new SoapAttachment();		
>   +	}
>   +
>   +	m_SoapAttachments[achId]->addBody(pAttchBody);
>   +}
>    
>   +AXIS_CPP_NAMESPACE_END
>   \ No newline at end of file
>   
>   
>   
>   1.32      +7 -1      ws-axis/c/src/soap/SoapSerializer.h
>   
>   Index: SoapSerializer.h
>   ===================================================================
>   RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.h,v
>   retrieving revision 1.31
>   retrieving revision 1.32
>   diff -u -r1.31 -r1.32
>   --- SoapSerializer.h	23 Nov 2004 17:21:05 -0000	1.31
>   +++ SoapSerializer.h	4 Jan 2005 05:50:00 -0000	1.32
>   @@ -22,6 +22,7 @@
>    
>    #include "../common/BasicTypeSerializer.h"
>    #include <axis/WSDDDefines.hpp>
>   +#include "SoapAttachment.hpp"
>    
>    AXIS_CPP_NAMESPACE_START
>    
>   @@ -47,9 +48,10 @@
>    class SoapSerializer : public IHandlerSoapSerializer
>    {
>    private:
>   +	map<AxisString, SoapAttachment*> m_SoapAttachments;
>        int m_nCounter;
>        AxisChar m_Buf[BTS_BUFFSIZE];
>   -    SoapEnvelope* m_pSoapEnvelope;    
>   +    SoapEnvelope* m_pSoapEnvelope;    	
>        int m_iSoapVersion;
>        /* Current Serialization Style */
>        AXIS_BINDING_STYLE m_nStyle;
>   @@ -149,9 +151,13 @@
>        IHeaderBlock* createHeaderBlock();
>        
>    private:
>   +	void serializeAttachments(SoapSerializer &pSZ);
>        BasicTypeSerializer m_BTSZ;
>        SOAPTransport* m_pOutputStream;
>    public:
>   +	void addAttachmentBody(const AxisChar* achId, xsd__base64Binary* pAttchBody);
>   +	void addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue);
>   +	void addAttachment(AxisString id, SoapAttachment* objAttach);
>    	IHeaderBlock* getHeaderBlock(const AxisChar* pcName, const AxisChar* pcNamespace);
>    	IHeaderBlock* getHeaderBlock();
>    	IHeaderBlock* getFirstHeaderBlock();
>   
>   
>   
>   1.1                  ws-axis/c/src/soap/SoapAttachementHeaders.cpp
>   
>   Index: SoapAttachementHeaders.cpp
>   ===================================================================
>   /*
>    *   Copyright 2003-2004 The Apache Software Foundation.
>    *
>    *   Licensed under the Apache License, Version 2.0 (the "License");
>    *   you may not use this file except in compliance with the License.
>    *   You may obtain a copy of the License at
>    *
>    *       http://www.apache.org/licenses/LICENSE-2.0
>    *
>    *   Unless required by applicable law or agreed to in writing, software
>    *   distributed under the License is distributed on an "AS IS" BASIS,
>    *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>    *   See the License for the specific language governing permissions and
>    *   limitations under the License.
>    */
>   
>   /*
>    * @author Rangika Mendis (rangika@opensource.lk)
>    * @author Nithyakala Thangarajah (nithya@opensource.lk)
>    * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
>    *
>    */
>   
>   
>   // SoapAttachementHeaders.cpp: implementation of the SoapAttachementHeaders class.
>   //
>   //////////////////////////////////////////////////////////////////////
>   
>   #include "SoapAttachementHeaders.hpp"
>   #include "SoapSerializer.h"
>   
>   AXIS_CPP_NAMESPACE_START
>   
>   //////////////////////////////////////////////////////////////////////
>   // Construction/Destruction
>   //////////////////////////////////////////////////////////////////////
>   
>   SoapAttachementHeaders::SoapAttachementHeaders()
>   {
>   
>   }
>   
>   SoapAttachementHeaders::~SoapAttachementHeaders()
>   {
>   
>   }
>   
>   void SoapAttachementHeaders::addHeader(AxisString name, AxisString value)
>   {
>   	m_AttachHeaders[name] = value;
>   }
>   
>   void SoapAttachementHeaders::serialize(SoapSerializer &pSZ)
>   {
>   	map<AxisString, AxisString>::iterator itCurrAttchHeader= m_AttachHeaders.begin();
>   
>   	while(itCurrAttchHeader != m_AttachHeaders.end())
>       {        
>   		pSZ.serialize(((*itCurrAttchHeader).first).c_str(), ": ", NULL);
>   		pSZ.serialize(((*itCurrAttchHeader).second).c_str(), "\n", NULL);       
>   
>           itCurrAttchHeader++;
>       }
>   }
>   
>   AXIS_CPP_NAMESPACE_END
>   
>   
>   1.1                  ws-axis/c/src/soap/SoapAttachementHeaders.hpp
>   
>   Index: SoapAttachementHeaders.hpp
>   ===================================================================
>   /*
>    *   Copyright 2003-2004 The Apache Software Foundation.
>    *
>    *   Licensed under the Apache License, Version 2.0 (the "License");
>    *   you may not use this file except in compliance with the License.
>    *   You may obtain a copy of the License at
>    *
>    *       http://www.apache.org/licenses/LICENSE-2.0
>    *
>    *   Unless required by applicable law or agreed to in writing, software
>    *   distributed under the License is distributed on an "AS IS" BASIS,
>    *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>    *   See the License for the specific language governing permissions and
>    *   limitations under the License.
>    */
>   
>   /*
>    * @author Rangika Mendis (rangika@opensource.lk)
>    * @author Nithyakala Thangarajah (nithya@opensource.lk)
>    * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
>    *
>    */
>   
>   // SoapAttachementHeaders.h: interface for the SoapAttachementHeaders class.
>   //
>   //////////////////////////////////////////////////////////////////////
>   
>   #if !defined(AFX_SOAPATTACHEMENTHEADERS_H__88A54506_DC18_41D4_B484_AB877ADC42D4__INCLUDED_)
>   #define AFX_SOAPATTACHEMENTHEADERS_H__88A54506_DC18_41D4_B484_AB877ADC42D4__INCLUDED_
>   
>   #if _MSC_VER > 1000
>   #pragma once
>   #endif // _MSC_VER > 1000
>   
>   #pragma warning( disable : 4786 )
>   
>   #include <map>
>   #include <string>
>   #include <axis/GDefine.hpp>
>   
>   AXIS_CPP_NAMESPACE_START
>   using namespace std;
>   
>   class SoapSerializer;
>   
>   class SoapAttachementHeaders  
>   {
>   private:
>   	map<AxisString, AxisString> m_AttachHeaders;
>   public:
>   	
>   	void serialize(SoapSerializer& pSZ);
>   	void addHeader(AxisString name, AxisString value);
>   	SoapAttachementHeaders();
>   	virtual ~SoapAttachementHeaders();
>   
>   };
>   
>   AXIS_CPP_NAMESPACE_END
>   #endif // !defined(AFX_SOAPATTACHEMENTHEADERS_H__88A54506_DC18_41D4_B484_AB877ADC42D4__INCLUDED_)
>   
>   
>   
>   1.1                  ws-axis/c/src/soap/SoapAttachment.cpp
>   
>   Index: SoapAttachment.cpp
>   ===================================================================
>   /*
>    *   Copyright 2003-2004 The Apache Software Foundation.
>    *
>    *   Licensed under the Apache License, Version 2.0 (the "License");
>    *   you may not use this file except in compliance with the License.
>    *   You may obtain a copy of the License at
>    *
>    *       http://www.apache.org/licenses/LICENSE-2.0
>    *
>    *   Unless required by applicable law or agreed to in writing, software
>    *   distributed under the License is distributed on an "AS IS" BASIS,
>    *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>    *   See the License for the specific language governing permissions and
>    *   limitations under the License.
>    */
>   
>   /*
>    * @author Rangika Mendis (rangika@opensource.lk)
>    * @author Nithyakala Thangarajah (nithya@opensource.lk)
>    * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
>    *
>    */
>   
>   // SoapAttachment.cpp: implementation of the SoapAttachment class.
>   //
>   //////////////////////////////////////////////////////////////////////
>   
>   #include "SoapAttachment.hpp"
>   #include "SoapSerializer.h"
>   
>   AXIS_CPP_NAMESPACE_START
>   
>   //////////////////////////////////////////////////////////////////////
>   // Construction/Destruction
>   //////////////////////////////////////////////////////////////////////
>   
>   SoapAttachment::SoapAttachment()
>   {	
>   	//Assigning to NULL
>   	m_AttachementBody = 0;
>   }
>   
>   SoapAttachment::~SoapAttachment()
>   {
>   
>   }
>   
>   void SoapAttachment::addHeader(AxisString name, AxisString value)
>   {
>   	m_AttachementHeaders.addHeader(name, value);
>   }
>   
>   /*
>   void SoapAttachment::addBody(AxisString sBody)
>   {
>   	m_AttachementBody = sBody;
>   }
>   */
>   
>   void SoapAttachment::addBody(xsd__base64Binary* objBody)
>   {
>   	m_AttachementBody = objBody;
>   }
>   
>   void SoapAttachment::serialize(SoapSerializer &pSZ)
>   {
>   	/* Serialize the Attachment Headers */
>   	pSZ.serialize("\n", NULL);
>   	m_AttachementHeaders.serialize(pSZ);
>   
>   	/* Serialize the Attachment Body */
>   	//pSZ.serialize("\n", m_AttachementBody.c_str(), NULL);
>   
>   	if (m_AttachementBody) {
>   		pSZ.serialize("\n", NULL);
>   		pSZ.serializeAsChardata(m_AttachementBody, XSD_BASE64BINARY);
>   	}
>   
>   	pSZ.serialize("\n", NULL);
>   }
>   
>   AXIS_CPP_NAMESPACE_END
>   
>   
>   1.1                  ws-axis/c/src/soap/SoapAttachment.hpp
>   
>   Index: SoapAttachment.hpp
>   ===================================================================
>   /*
>    *   Copyright 2003-2004 The Apache Software Foundation.
>    *
>    *   Licensed under the Apache License, Version 2.0 (the "License");
>    *   you may not use this file except in compliance with the License.
>    *   You may obtain a copy of the License at
>    *
>    *       http://www.apache.org/licenses/LICENSE-2.0
>    *
>    *   Unless required by applicable law or agreed to in writing, software
>    *   distributed under the License is distributed on an "AS IS" BASIS,
>    *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>    *   See the License for the specific language governing permissions and
>    *   limitations under the License.
>    */
>   
>   /*
>    * @author Rangika Mendis (rangika@opensource.lk)
>    * @author Nithyakala Thangarajah (nithya@opensource.lk)
>    * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
>    *
>    */
>   
>   
>   // SoapAttachment.h: interface for the SoapAttachment class.
>   //
>   //////////////////////////////////////////////////////////////////////
>   
>   #if !defined(AFX_SOAPATTACHMENT_H__7E7B50DC_21AF_4C6E_83E0_F77985A38E43__INCLUDED_)
>   #define AFX_SOAPATTACHMENT_H__7E7B50DC_21AF_4C6E_83E0_F77985A38E43__INCLUDED_
>   
>   #if _MSC_VER > 1000
>   #pragma once
>   #endif // _MSC_VER > 1000
>   
>   #include <axis/GDefine.hpp>
>   #include <axis/AxisUserAPI.hpp>
>   #include "SoapAttachementHeaders.hpp"
>   
>   #include <string>
>   using namespace std;
>   
>   AXIS_CPP_NAMESPACE_START
>   
>   class SoapSerializer;
>   
>   class SoapAttachment
>   {
>   private:
>   	SoapAttachementHeaders m_AttachementHeaders;
>   	xsd__base64Binary* m_AttachementBody;
>   public:
>   	
>   	void serialize(SoapSerializer& pSZ);
>   	void addBody(xsd__base64Binary* objBody);	
>   	void addHeader(AxisString name, AxisString value);
>   	SoapAttachment();
>   	virtual ~SoapAttachment();	
>   };
>   
>   AXIS_CPP_NAMESPACE_END
>   #endif // !defined(AFX_SOAPATTACHMENT_H__7E7B50DC_21AF_4C6E_83E0_F77985A38E43__INCLUDED_)
>   
>   
>   
>   1.2       +10 -0     ws-axis/c/include/axis/IWrapperSoapSerializer.hpp
>   
>   Index: IWrapperSoapSerializer.hpp
>   ===================================================================
>   RCS file: /home/cvs/ws-axis/c/include/axis/IWrapperSoapSerializer.hpp,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- IWrapperSoapSerializer.hpp	23 Nov 2004 11:11:11 -0000	1.1
>   +++ IWrapperSoapSerializer.hpp	4 Jan 2005 05:50:00 -0000	1.2
>   @@ -31,6 +31,12 @@
>     *
>     */
>    
>   +/*
>   + * Revision 1.1  2005/01/02 Roshan
>   + * Added addAttachmentBody
>   + * Added addAttachmentHeader
>   + */
>   +
>    AXIS_CPP_NAMESPACE_START
>    
>    class IWrapperSoapSerializer
>   @@ -120,6 +126,10 @@
>        virtual int serializeAnyObject(AnyType* pAnyObject)=0;
>    
>        virtual int serializeAsChardata(void* pValue, XSDTYPE type)=0;
>   +
>   +	virtual void addAttachmentBody(const AxisChar* achId, xsd__base64Binary* pAttchBody)=0;
>   +
>   +	virtual void addAttachmentHeader(const AxisChar* achId, const AxisChar* achHeaderName, const AxisChar* achHeaderValue)=0;
>    };
>    
>    AXIS_CPP_NAMESPACE_END
>   
>   
>   
>   1.21      +20 -0     ws-axis/c/vc/AxisServerDLL.dsp
>   
>   Index: AxisServerDLL.dsp
>   ===================================================================
>   RCS file: /home/cvs/ws-axis/c/vc/AxisServerDLL.dsp,v
>   retrieving revision 1.20
>   retrieving revision 1.21
>   diff -u -r1.20 -r1.21
>   --- AxisServerDLL.dsp	15 Dec 2004 12:42:21 -0000	1.20
>   +++ AxisServerDLL.dsp	4 Jan 2005 05:50:00 -0000	1.21
>   @@ -262,6 +262,14 @@
>    # End Source File
>    # Begin Source File
>    
>   +SOURCE=..\src\soap\SoapAttachementHeaders.cpp
>   +# End Source File
>   +# Begin Source File
>   +
>   +SOURCE=..\src\soap\SoapAttachment.cpp
>   +# End Source File
>   +# Begin Source File
>   +
>    SOURCE=..\src\soap\SoapBody.cpp
>    # End Source File
>    # Begin Source File
>   @@ -351,6 +359,18 @@
>    # Begin Source File
>    
>    SOURCE=..\include\axis\server\Packet.hpp
>   +# End Source File
>   +# Begin Source File
>   +
>   +SOURCE=..\src\soap\SoapAttachementHeaders.hpp
>   +# End Source File
>   +# Begin Source File
>   +
>   +SOURCE=..\src\soap\SoapAttachment.hpp
>   +# End Source File
>   +# Begin Source File
>   +
>   +SOURCE=..\src\soap\SoapSerializer.h
>    # End Source File
>    # End Group
>    # Begin Group "Resource Files"
>   
>   
>   
>   1.24      +8 -0      ws-axis/c/vc/AxisClientDLL.dsp
>   
>   Index: AxisClientDLL.dsp
>   ===================================================================
>   RCS file: /home/cvs/ws-axis/c/vc/AxisClientDLL.dsp,v
>   retrieving revision 1.23
>   retrieving revision 1.24
>   diff -u -r1.23 -r1.24
>   --- AxisClientDLL.dsp	24 Nov 2004 14:19:30 -0000	1.23
>   +++ AxisClientDLL.dsp	4 Jan 2005 05:50:00 -0000	1.24
>   @@ -262,6 +262,14 @@
>    # End Source File
>    # Begin Source File
>    
>   +SOURCE=..\src\soap\SoapAttachementHeaders.cpp
>   +# End Source File
>   +# Begin Source File
>   +
>   +SOURCE=..\src\soap\SoapAttachment.cpp
>   +# End Source File
>   +# Begin Source File
>   +
>    SOURCE=..\src\soap\SoapBody.cpp
>    # End Source File
>    # Begin Source File
>   
>   
>   
>