\section{SOAPTransport Class Reference}
\label{classSOAPTransport}\index{SOAPTransport@{SOAPTransport}}
Interface of any Axis transport layer. 


{\tt \#include $<$SOAPTransport.h$>$}

Inheritance diagram for SOAPTransport::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2cm]{classSOAPTransport}
\end{center}
\end{figure}
\subsection*{Public Methods}
\begin{CompactItemize}
\item 
\index{closeConnection@{closeConnection}!SOAPTransport@{SOAPTransport}}\index{SOAPTransport@{SOAPTransport}!closeConnection@{closeConnection}}
virtual void {\bf close\-Connection} ()=0\label{classSOAPTransport_a2}

\begin{CompactList}\small\item\em Closes the connection established with Open\-Connection. @example Axis\-Transport.h.\item\end{CompactList}\item 
virtual void {\bf register\-Release\-Buffer\-Callback} (AXIS\_\-ENGINE\_\-CALLBACK\_\-RELEASE\_\-SEND\_\-BUFFER p\-Funct)=0
\begin{CompactList}\small\item\em Registers the m\_\-p\-Release\-Buffer\-Callback callback function.\item\end{CompactList}\item 
virtual void {\bf set\-Transport\-Property} (AXIS\_\-TRANSPORT\_\-INFORMATION\_\-TYPE e\-Type, const char $\ast$pc\-Value)=0
\begin{CompactList}\small\item\em Sets a predefined transport property for outgoing message.\item\end{CompactList}\item 
virtual const char $\ast$ {\bf get\-Transport\-Property} (AXIS\_\-TRANSPORT\_\-INFORMATION\_\-TYPE e\-Type)=0
\begin{CompactList}\small\item\em Gets a predefined transport property in the arrived message.\item\end{CompactList}\item 
virtual void {\bf set\-Transport\-Property} (const char $\ast$pc\-Key, const char $\ast$pc\-Value)=0
\begin{CompactList}\small\item\em Sets any transport property.\item\end{CompactList}\item 
virtual const char $\ast$ {\bf get\-Transport\-Property} (const char $\ast$pc\-Key)=0
\begin{CompactList}\small\item\em Gets any transport property in the arrived message.\item\end{CompactList}\item 
virtual void {\bf set\-Attachment} (const char $\ast$pc\-Attachmentid, const char $\ast$pc\-Attachment)=0
\begin{CompactList}\small\item\em Sets a SOAP attachment to be sent with outgoing message.\item\end{CompactList}\item 
virtual const char $\ast$ {\bf get\-Attachment} (const char $\ast$pc\-Attachmentid)=0
\begin{CompactList}\small\item\em Gets an attachment arrived in the inbound message.\item\end{CompactList}\item 
virtual void {\bf set\-Endpoint\-Uri} (const char $\ast$pc\-Endpoint\-Uri)=0
\begin{CompactList}\small\item\em Sets the remote endpoint for tranport to connect to.\item\end{CompactList}\item 
virtual void {\bf set\-Session\-Id} (const char $\ast$pc\-Session\-Id)=0
\begin{CompactList}\small\item\em Sets the session id for the transport session.\item\end{CompactList}\item 
virtual const char $\ast$ {\bf get\-Session\-Id} ()=0
\begin{CompactList}\small\item\em Sets the session id for the transport session.\item\end{CompactList}\item 
virtual const char $\ast$ {\bf get\-Service\-Name} ()=0
\begin{CompactList}\small\item\em Gets the service name of the web service to be invoked.\item\end{CompactList}\item 
virtual AXIS\_\-PROTOCOL\_\-TYPE {\bf get\-Protocol} ()=0
\begin{CompactList}\small\item\em Gets the protocol type of the transport library.\item\end{CompactList}\item 
virtual int {\bf get\-Sub\-Protocol} ()=0
\begin{CompactList}\small\item\em Gets the sub protocol.\item\end{CompactList}\item 
virtual AXIS\_\-TRANSPORT\_\-STATUS {\bf flush\-Output} ()=0
\begin{CompactList}\small\item\em Forces transport to send any remaining data of the outgoing message.\item\end{CompactList}\item 
virtual void {\bf set\-Proxy} (const char $\ast$pc\-Proxy\-Host, unsigned int ui\-Proxy\-Port)
\item 
virtual void {\bf set\-Timeout} (const long l\-Seconds)=0
\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
char $\ast$ {\bf m\_\-pc\-Endpoint\-Uri}
\item 
AXIS\_\-ENGINE\_\-CALLBACK\_\-RELEASE\_\-SEND\_\-BUFFER {\bf m\_\-p\-Release\-Buffer\-Callback}
\end{CompactItemize}


\subsection{Detailed Description}
Interface of any Axis transport layer.

Interface of any Axis transport. Every transpor layer should implement this interface in order to be used with Axis Engine. This interface contain the functionalities independent of the type of transport (whether HTTP, SMTP, etc). 



\subsection{Member Function Documentation}
\index{SOAPTransport@{SOAPTransport}!flushOutput@{flushOutput}}
\index{flushOutput@{flushOutput}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual AXIS\_\-TRANSPORT\_\-STATUS SOAPTransport::flush\-Output ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a16}


Forces transport to send any remaining data of the outgoing message.

\begin{Desc}
\item[Returns: ]\par
Transport status. Two return status are possible. They are, TRANSPORT\_\-FAILED - Sending data has failed. TRANSPORT\_\-FINISHED - Sending finished and successful. \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getAttachment@{getAttachment}}
\index{getAttachment@{getAttachment}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual const char$\ast$ SOAPTransport::get\-Attachment (const char $\ast$ {\em pc\-Attachmentid})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a9}


Gets an attachment arrived in the inbound message.

Gets an attachment arrived in the inbound message. Usually the SOAP message will contain the information indicating that there is an attachment arrived at the transport. The SOAP message also contain the attachement id which is required to request the transport for the particular attachment.

\begin{Desc}
\item[Precondition: ]\par
To get an attachment the attachment id must be provided. The SOAP message should contain the attachment id. \end{Desc}
\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Attachmentid}]Attachment identifier that the caller should find from the SOAP message and pass in. The transport will use this identifier to locate the corresponding attachment. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The attachment if available. Returns null if the attachment corresponding to the pc\-Attachmentid is not found. \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getProtocol@{getProtocol}}
\index{getProtocol@{getProtocol}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual AXIS\_\-PROTOCOL\_\-TYPE SOAPTransport::get\-Protocol ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a14}


Gets the protocol type of the transport library.

Gets the protocol type of the transport library. The caller should use this function to check the protocol of the transport layer and should use the transport accordingly.

\begin{Desc}
\item[Returns: ]\par
The type of the transport. See AXIS\_\-PROTOCOL\_\-TYPE in Packet.h \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getServiceName@{getServiceName}}
\index{getServiceName@{getServiceName}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual const char$\ast$ SOAPTransport::get\-Service\-Name ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a13}


Gets the service name of the web service to be invoked.

Gets the service name of the web service to be invoked. How this service name is found is upto the type of the transport layer. For example HTTP transports will look at the value of http header \char`\"{}soap\-Action\char`\"{} and extract the service name. Whereas a SMTP transport will look at recepitent address.

\begin{Desc}
\item[Returns: ]\par
Service name if available and null otherwise. \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getSessionId@{getSessionId}}
\index{getSessionId@{getSessionId}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual const char$\ast$ SOAPTransport::get\-Session\-Id ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a12}


Sets the session id for the transport session.

Gets the session id of the transport session sent by the remote end if any.

\begin{Desc}
\item[Returns: ]\par
Session id if available. Returns null otherwise. \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getSubProtocol@{getSubProtocol}}
\index{getSubProtocol@{getSubProtocol}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual int SOAPTransport::get\-Sub\-Protocol ()\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a15}


Gets the sub protocol.

Gets the sub protocol. The usefulness of this method and the return values depend on the particular implementation. For example HTTP transports should return one of the values defined in enumeration AXIS\_\-HTTP\_\-METHOD. See Packet.h

\begin{Desc}
\item[Returns: ]\par
Type of the sub protocol (Ex: GET, POST, UNSUPPORTED for HTTP). \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getTransportProperty@{getTransportProperty}}
\index{getTransportProperty@{getTransportProperty}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual const char$\ast$ SOAPTransport::get\-Transport\-Property (const char $\ast$ {\em pc\-Key})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a7}


Gets any transport property in the arrived message.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Key}]The key of the transport property to get. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
Value of the transport property if available. Returns null if unavailable. \end{Desc}
\index{SOAPTransport@{SOAPTransport}!getTransportProperty@{getTransportProperty}}
\index{getTransportProperty@{getTransportProperty}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual const char$\ast$ SOAPTransport::get\-Transport\-Property (AXIS\_\-TRANSPORT\_\-INFORMATION\_\-TYPE {\em e\-Type})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a5}


Gets a predefined transport property in the arrived message.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
e\-Type}]Predefined transport property to get. See Packet.h for predefined transport property types. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
Value of the transport property if available. Returns null if unavailable. \end{Desc}
\index{SOAPTransport@{SOAPTransport}!registerReleaseBufferCallback@{registerReleaseBufferCallback}}
\index{registerReleaseBufferCallback@{registerReleaseBufferCallback}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::register\-Release\-Buffer\-Callback (AXIS\_\-ENGINE\_\-CALLBACK\_\-RELEASE\_\-SEND\_\-BUFFER {\em p\-Funct})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a3}


Registers the m\_\-p\-Release\-Buffer\-Callback callback function.

Registers the callback function which is used by transport layer to inform the caller that a buffer given to be sent was sent and it can be re-used by the caller.\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
p\-Funct}]Function pointer to caller's function signature of this function is defined in Packet.h \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setAttachment@{setAttachment}}
\index{setAttachment@{setAttachment}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Attachment (const char $\ast$ {\em pc\-Attachmentid}, const char $\ast$ {\em pc\-Attachment})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a8}


Sets a SOAP attachment to be sent with outgoing message.

Sets a SOAP attachment to be sent with outgoing message. This attachment is usually the base64 or hex encoded character buffer that is null terminated.\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Attachmentid}]An identifier for the attachment. This identifier also will go in to the SOAP message so that the recipient will know that there is an attachemet in the message. \item[{\em 
pc\-Attachment}]The attachment. This is usually a null terminated string encoded to base64 or hex binary. \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setEndpointUri@{setEndpointUri}}
\index{setEndpointUri@{setEndpointUri}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Endpoint\-Uri (const char $\ast$ {\em pc\-Endpoint\-Uri})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a10}


Sets the remote endpoint for tranport to connect to.

Sets the the remote endpoint for tranport to connect to. This URI depends on the the transport type.

\begin{Desc}
\item[Precondition: ]\par
A caller should use the method {\bf get\-Protocol()} {\rm (p.\,\pageref{classSOAPTransport_a14})} to get the type of the transport. Then the caller should set the endpoint URI accordingly. For example if the transport is HTTP this endpoint can be \char`\"{}{\tt http://www.xxx.com/}\char`\"{}and if the transport is SMTP this endpoint can be the mail server and port.\end{Desc}
\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Endpoint\-Uri}]Endpoint URI to connect to. \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setProxy@{setProxy}}
\index{setProxy@{setProxy}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Proxy (const char $\ast$ {\em pc\-Proxy\-Host}, unsigned int {\em ui\-Proxy\-Port})\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classSOAPTransport_a17}


Set proxy server and port for transport.

Setting the proxy is useful for users who are behind proxies.

For some trasports this method may not make sense. Hence this method is not pure virtual. Those trasports that implement this interface, that wish to use proxy, must provide an implementation. Also, the hadling of the proxy is the responsibility of the deriving classes\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Proxy\-Host}]Host name of proxy server \item[{\em 
ui\-Proxy\-Port}]Port of proxy server \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setSessionId@{setSessionId}}
\index{setSessionId@{setSessionId}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Session\-Id (const char $\ast$ {\em pc\-Session\-Id})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a11}


Sets the session id for the transport session.

Sets the session id for the transport session. Actual usage of this session id is depend on the implementation of the transport.\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Session\-Id}]The session id. \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setTimeout@{setTimeout}}
\index{setTimeout@{setTimeout}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Timeout (const long {\em l\-Seconds})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a18}


Set transport timeout.\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
l\-Seconds}]Timeout in seconds \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setTransportProperty@{setTransportProperty}}
\index{setTransportProperty@{setTransportProperty}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Transport\-Property (const char $\ast$ {\em pc\-Key}, const char $\ast$ {\em pc\-Value})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a6}


Sets any transport property.

Sets any transport property to be included in the outgoing message. This transport property is not persistent in the transport layer. These transport properties should be set for each outgoing message.\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
pc\-Key}]Key for the transport property to be set. \item[{\em 
pc\-Value}]Value for transport property to be set. \end{description}
\end{Desc}
\index{SOAPTransport@{SOAPTransport}!setTransportProperty@{setTransportProperty}}
\index{setTransportProperty@{setTransportProperty}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void SOAPTransport::set\-Transport\-Property (AXIS\_\-TRANSPORT\_\-INFORMATION\_\-TYPE {\em e\-Type}, const char $\ast$ {\em pc\-Value})\hspace{0.3cm}{\tt  [pure virtual]}}\label{classSOAPTransport_a4}


Sets a predefined transport property for outgoing message.

Sets a predefined transport property to be included in the outgoing message. This transport property is not persistent in the transport layer. These transport properties should be set for each outgoing message.\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
e\-Type}]Predefined transport property to be set. See Packet.h for predefined transport property types. \item[{\em 
pc\-Value}]Transport property value to be set. \end{description}
\end{Desc}


\subsection{Member Data Documentation}
\index{SOAPTransport@{SOAPTransport}!m_pcEndpointUri@{m\_\-pcEndpointUri}}
\index{m_pcEndpointUri@{m\_\-pcEndpointUri}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ SOAPTransport::m\_\-pc\-Endpoint\-Uri\hspace{0.3cm}{\tt  [protected]}}\label{classSOAPTransport_n0}


Outgoing endpoint URI \index{SOAPTransport@{SOAPTransport}!m_pReleaseBufferCallback@{m\_\-pReleaseBufferCallback}}
\index{m_pReleaseBufferCallback@{m\_\-pReleaseBufferCallback}!SOAPTransport@{SOAPTransport}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}AXIS\_\-ENGINE\_\-CALLBACK\_\-RELEASE\_\-SEND\_\-BUFFER SOAPTransport::m\_\-p\-Release\-Buffer\-Callback\hspace{0.3cm}{\tt  [protected]}}\label{classSOAPTransport_n1}


Release buffer callback function registered. Usefull if the transport is accumulating buffers to be sent later. Ex: non-chunked behavior of http transports 

The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
{\bf SOAPTransport.h}\end{CompactItemize}
