00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #if !defined(AXIS_SOAPTRANSPORT_H__OF_AXIS_INCLUDED_)
00032 #define AXIS_SOAPTRANSPORT_H__OF_AXIS_INCLUDED_
00033
00034 #include <axis/server/Packet.h>
00035
00044 #ifdef __cplusplus
00045
00056 class AxisIOStream
00057 {
00058 public:
00093 virtual AXIS_TRANSPORT_STATUS sendBytes(const char* pcSendBuffer, const void* pBufferid)=0;
00125 virtual AXIS_TRANSPORT_STATUS getBytes(char* pcBuffer, int* piRetSize)=0;
00126 };
00127
00139 class SOAPTransport : public AxisIOStream
00140 {
00141 public:
00142 virtual ~SOAPTransport(){};
00155 virtual int openConnection()=0;
00160 virtual void closeConnection()=0;
00170 virtual void registerReleaseBufferCallback(
00171 AXIS_ENGINE_CALLBACK_RELEASE_SEND_BUFFER pFunct)=0;
00183 virtual void setTransportProperty(AXIS_TRANSPORT_INFORMATION_TYPE eType,
00184 const char* pcValue)=0;
00193 virtual const char* getTransportProperty(
00194 AXIS_TRANSPORT_INFORMATION_TYPE eType)=0;
00204 virtual void setTransportProperty(const char* pcKey, const char* pcValue)=0;
00212 virtual const char* getTransportProperty(const char* pcKey)=0;
00225 virtual void setAttachment(const char* pcAttachmentid, const char* pcAttachment)=0;
00241 virtual const char* getAttachment(const char* pcAttachmentid)=0;
00255 virtual void setEndpointUri(const char* pcEndpointUri)=0;
00263 virtual void setSessionId(const char* pcSessionId)=0;
00271 virtual const char* getSessionId()=0;
00282 virtual const char* getServiceName()=0;
00291 virtual AXIS_PROTOCOL_TYPE getProtocol()=0;
00301 virtual int getSubProtocol()=0;
00308 virtual AXIS_TRANSPORT_STATUS flushOutput()=0;
00322 virtual void setProxy(const char* pcProxyHost, unsigned int uiProxyPort) {}
00323
00329 virtual void setTimeout(const long lSeconds) = 0;
00330
00331 protected:
00335 char* m_pcEndpointUri;
00341 AXIS_ENGINE_CALLBACK_RELEASE_SEND_BUFFER m_pReleaseBufferCallback;
00342
00343 };
00344
00345 #endif
00346
00347 #endif // !defined(AXIS_SOAPTRANSPORT_H__OF_AXIS_INCLUDED_)