You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ra...@apache.org on 2005/03/11 10:59:00 UTC
cvs commit: ws-axis/c/include/axis GDefine.hpp IHandlerSoapSerializer.hpp
rangika 2005/03/11 01:59:00
Modified: c/src/soap SoapHeader.cpp SoapHeader.h SoapSerializer.cpp
SoapSerializer.h
c/include/axis GDefine.hpp IHandlerSoapSerializer.hpp
Log:
Added some functionalities to deal with soapHeaders
Revision Changes Path
1.36 +34 -0 ws-axis/c/src/soap/SoapHeader.cpp
Index: SoapHeader.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapHeader.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- SoapHeader.cpp 31 Jan 2005 13:00:53 -0000 1.35
+++ SoapHeader.cpp 11 Mar 2005 09:58:59 -0000 1.36
@@ -276,4 +276,38 @@
return tmpIHeaderBlock;
}
+
+int SoapHeader::deleteHeaderBlock(const AxisChar *pName,
+ const AxisChar *pNamespace)
+{
+ int iStatus = AXIS_SUCCESS;
+ HeaderBlock* tmpHeaderBlock = NULL;
+
+ list<IHeaderBlock*>::iterator itCurrHeaderBlock= m_headerBlocks.begin();
+
+ while (itCurrHeaderBlock != m_headerBlocks.end())
+ {
+ tmpHeaderBlock = (HeaderBlock*)(*itCurrHeaderBlock);
+
+ if ((strcmp(((tmpHeaderBlock)->m_localname).c_str(), pName) == 0) &&
+ (strcmp(((tmpHeaderBlock)->m_uri).c_str(), pNamespace) == 0))
+ {
+ m_headerBlocks.remove(tmpHeaderBlock);
+ break;
+ }
+ else
+ {
+ itCurrHeaderBlock++;
+ }
+
+ }
+
+ if (m_headerBlocks.empty())
+ {
+ iStatus = AXIS_NO_REMAINING_SOAP_HEADERS;
+ }
+
+ return iStatus;
+}
+
AXIS_CPP_NAMESPACE_END
1.15 +9 -0 ws-axis/c/src/soap/SoapHeader.h
Index: SoapHeader.h
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapHeader.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- SoapHeader.h 13 Jan 2005 14:05:42 -0000 1.14
+++ SoapHeader.h 11 Mar 2005 09:58:59 -0000 1.15
@@ -141,6 +141,15 @@
*/
void addHeaderBlock(IHeaderBlock* headerBlock);
+/**
+ * Deletes a header block.
+ *
+ *
+ */
+
+int deleteHeaderBlock(const AxisChar *pName,
+ const AxisChar *pNamespace);
+
/**
* The Constructor.
*/
1.103 +18 -0 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.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- SoapSerializer.cpp 7 Mar 2005 15:36:44 -0000 1.102
+++ SoapSerializer.cpp 11 Mar 2005 09:58:59 -0000 1.103
@@ -1287,4 +1287,22 @@
}
}
+
+int SoapSerializer::deleteHeaderBlock(const AxisChar* pName,
+ const AxisChar* pNamespace)
+{
+
+ int iStatus = AXIS_SUCCESS;
+ iStatus = m_pSoapEnvelope->m_pSoapHeader->deleteHeaderBlock(pName,pNamespace);
+ //No remaining soap header blocks, so will delete the SoapHeader
+ if (iStatus == AXIS_NO_REMAINING_SOAP_HEADERS)
+ {
+ delete m_pSoapEnvelope->m_pSoapHeader;
+ m_pSoapEnvelope->m_pSoapHeader = NULL;
+ iStatus = AXIS_SUCCESS;
+ }
+
+ return iStatus;
+}
+
AXIS_CPP_NAMESPACE_END
1.43 +1 -0 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.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- SoapSerializer.h 23 Feb 2005 15:31:20 -0000 1.42
+++ SoapSerializer.h 11 Mar 2005 09:58:59 -0000 1.43
@@ -211,6 +211,7 @@
int serializeAnyObject(AnyType* pAnyObject);
int serializeAsChardata(void* pValue, XSDTYPE type);
AxisXMLString getNamespaceURL( string sNameSpace);
+ int deleteHeaderBlock(const AxisChar* pName, const AxisChar* pNamespace);
};
AXIS_CPP_NAMESPACE_END
1.6 +2 -1 ws-axis/c/include/axis/GDefine.hpp
Index: GDefine.hpp
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/GDefine.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- GDefine.hpp 28 Jan 2005 12:03:59 -0000 1.5
+++ GDefine.hpp 11 Mar 2005 09:59:00 -0000 1.6
@@ -49,7 +49,8 @@
AXIS_FAIL = -1,
AXIS_OBJECT_ALREADY_EXISTS=1,
AXIS_NO_SUCH_HANDLER,
- AXIS_NO_SUCH_SERVICE
+ AXIS_NO_SUCH_SERVICE,
+ AXIS_NO_REMAINING_SOAP_HEADERS
} AXIS_GLOBAL_ERROR;
typedef enum
{
1.6 +13 -0 ws-axis/c/include/axis/IHandlerSoapSerializer.hpp
Index: IHandlerSoapSerializer.hpp
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/IHandlerSoapSerializer.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- IHandlerSoapSerializer.hpp 3 Feb 2005 05:10:21 -0000 1.5
+++ IHandlerSoapSerializer.hpp 11 Mar 2005 09:59:00 -0000 1.6
@@ -141,6 +141,19 @@
virtual int AXISCALL setBodyAsBase64Binary(xsd__base64Binary body)=0;
virtual const AxisChar* AXISCALL getBodyAsString()=0;
+
+/**
+*Used to delete a header block
+*
+*/
+
+virtual int deleteHeaderBlock(const AxisChar* pName, const AxisChar* pNamespace)=0;
+/**
+*Used to delete all the header block
+*
+*/
+virtual int removeSoapHeader()=0;
+
/**
* Adds the namespace declaration to the SOAP Envelope.
*/