Hi Rangika,
SOAP Attachments have just broken my latest code.
Please can you create a branch to do this work in and back out your latest changes? We agreed that this was not being done in 1.5 right ?
thanks,
John.
| [EMAIL PROTECTED]
22/02/2005 08:56 |
|
rangika 2005/02/22 00:56:34
Modified: c/src/soap SoapAttachment.hpp SoapAttachment.cpp
SoapAttachementHeaders.cpp
Log:
Modified to support Binary attachments.
Revision Changes Path
1.5 +4 -1 ws-axis/c/src/soap/SoapAttachment.hpp
Index: SoapAttachment.hpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapAttachment.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SoapAttachment.hpp 28 Jan 2005 11:47:09 -0000 1.4
+++ SoapAttachment.hpp 22 Feb 2005 08:56:34 -0000 1.5
@@ -54,12 +54,15 @@
private:
SoapAttachementHeaders* m_AttachementHeaders;
xsd__base64Binary* m_AttachementBody;
-
+ char *m_binaryBody;
+ int iEncodingStyle;
+
public:
const char* getHeader(const char* pchName);
xsd__base64Binary* getBody();
void serialize(SoapSerializer& pSZ);
void addBody(xsd__base64Binary* objBody);
+ void addBody(char* pchBinaryBody);
void addHeader(const char* pchName, const char* pchValue);
SoapAttachment();
virtual ~SoapAttachment();
1.6 +22 -4 ws-axis/c/src/soap/SoapAttachment.cpp
Index: SoapAttachment.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapAttachment.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SoapAttachment.cpp 31 Jan 2005 04:37:38 -0000 1.5
+++ SoapAttachment.cpp 22 Feb 2005 08:56:34 -0000 1.6
@@ -63,9 +63,18 @@
void SoapAttachment::addBody(xsd__base64Binary* objBody)
{
+ iEncodingStyle = AXIS_BASE64;
m_AttachementBody = objBody;
}
+void SoapAttachment::addBody(char* pchBinaryBody)
+{
+ iEncodingStyle = AXIS_BINARY;
+ m_binaryBody = new char[strlen(pchBinaryBody) + 1];
+ strcpy(m_binaryBody,pchBinaryBody);
+
+}
+
void SoapAttachment::serialize(SoapSerializer &pSZ)
{
/* Serialize the Attachment Headers */
@@ -73,10 +82,19 @@
m_AttachementHeaders->serialize(pSZ);
/* Serialize the Attachment Body */
- if (m_AttachementBody) {
- pSZ.serialize("\n", NULL);
- pSZ.serializeAsChardata(m_AttachementBody, XSD_BASE64BINARY);
- }
+ if (iEncodingStyle == AXIS_BASE64)
+ {
+ if (m_AttachementBody) {
+ pSZ.serialize("\n", NULL);
+ pSZ.serializeAsChardata(m_AttachementBody, XSD_BASE64BINARY);
+ }
+ }
+ else if (iEncodingStyle == AXIS_BINARY)
+ {
+ pSZ.serialize("\n", NULL);
+ pSZ.serialize(m_binaryBody, NULL);
+ }
+
pSZ.serialize("\n", NULL);
}
1.7 +1 -1 ws-axis/c/src/soap/SoapAttachementHeaders.cpp
Index: SoapAttachementHeaders.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapAttachementHeaders.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SoapAttachementHeaders.cpp 31 Jan 2005 13:00:53 -0000 1.6
+++ SoapAttachementHeaders.cpp 22 Feb 2005 08:56:34 -0000 1.7
@@ -81,4 +81,4 @@
return "";
}
-AXIS_CPP_NAMESPACE_END
+AXIS_CPP_NAMESPACE_END
\ No newline at end of file
