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,
00094 const void* pBufferid)=0;
00126 virtual AXIS_TRANSPORT_STATUS getBytes(char* pcBuffer, int* piRetSize)=0;
00127 };
00128
00140 class SOAPTransport : public AxisIOStream
00141 {
00142 public:
00143 virtual ~SOAPTransport(){};
00156 virtual int openConnection()=0;
00161 virtual void closeConnection()=0;
00171 virtual void registerReleaseBufferCallback(
00172 AXIS_ENGINE_CALLBACK_RELEASE_SEND_BUFFER pFunct)=0;
00184 virtual void setTransportProperty(AXIS_TRANSPORT_INFORMATION_TYPE eType,
00185 const char* pcValue)=0;
00194 virtual const char* getTransportProperty(
00195 AXIS_TRANSPORT_INFORMATION_TYPE eType)=0;
00205 virtual void setTransportProperty(const char* pcKey, const char* pcValue)=0;
00213 virtual const char* getTransportProperty(const char* pcKey)=0;
00226 virtual void setAttachment(const char* pcAttachmentid, const char* pcAttachment)=0;
00242 virtual const char* getAttachment(const char* pcAttachmentid)=0;
00256 virtual void setEndpointUri(const char* pcEndpointUri)=0;
00264 virtual void setSessionId(const char* pcSessionId)=0;
00272 virtual const char* getSessionId()=0;
00283 virtual const char* getServiceName()=0;
00292 virtual AXIS_PROTOCOL_TYPE getProtocol()=0;
00302 virtual int getSubProtocol()=0;
00309 virtual AXIS_TRANSPORT_STATUS flushOutput()=0;
00323 virtual void setProxy(const char* pcProxyHost, unsigned int uiProxyPort) {}
00324
00330 virtual void setTimeout(const long lSeconds) = 0;
00331
00332 protected:
00336 char* m_pcEndpointUri;
00342 AXIS_ENGINE_CALLBACK_RELEASE_SEND_BUFFER m_pReleaseBufferCallback;
00343
00344 };
00345
00346 #endif
00347
00348 #endif // !defined(AXIS_SOAPTRANSPORT_H__OF_AXIS_INCLUDED_)