Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Examples  

AxisIOStream Class Reference

Interface of the input/output stream of Axis transport. ISOAPTransport is derived from this interface. More...

#include <SOAPTransport.h>

Inheritance diagram for AxisIOStream:

SOAPTransport List of all members.

Public Methods

virtual AXIS_TRANSPORT_STATUS sendBytes (const char *pcSendBuffer, const void *pBufferid)=0
 Sends a buffer to the transport layer.

virtual AXIS_TRANSPORT_STATUS getBytes (char *pcBuffer, int *piRetSize)=0
 Gets a part of or full SOAP message.


Detailed Description

Interface of the input/output stream of Axis transport. ISOAPTransport is derived from this interface.

Interface of the input/output stream of Axis transport. The use of this interface is to avoid the parser being provided the full functionalies of SOAPTransport interface


Member Function Documentation

virtual AXIS_TRANSPORT_STATUS AxisIOStream::getBytes char *    pcBuffer,
int *    piRetSize
[pure virtual]
 

Gets a part of or full SOAP message.

Gets a part of or full SOAP message. A Caller may call this method multiple times to get parts of the SOAP message until the function return status says that no more data available.

Precondition:
Transport connection should have been established by calling Openconnection of the SOAPTransport's implementaion.
Parameters:
pcBuffer  The character buffer provided by the caller to be filled by the transport layer. The size of the buffer is given by the value of second parameter piRetSize. The transport layer should fill the buffer and put the number of bytes filled into the inout parameter piRetSize.
piRetSize  Inout parameter which contain the size of the buffer as the in value. On return the transport layer should populate this parameter with the number of bytes copied to the buffer.
Returns:
Transport status. Three states are possible. They are, TRANSPORT_FINISHED - Method call successful. No more data is available. If pcBuffer contains any data this is the final part of the message. can re-use the buffer. TRANSPORT_IN_PROGRESS - Method call is successful. There can be more data of this message for subsequent calls to this method. pcBuffer must have been filled to its maximum capacity. TRANSPORT_FAILED - Transport layer has failed. So the caller should not call this method again. Any data in the pcBuffer are not reliable and should not be used.

virtual AXIS_TRANSPORT_STATUS AxisIOStream::sendBytes const char *    pcSendBuffer,
const void *    pBufferid
[pure virtual]
 

Sends a buffer to the transport layer.

Sends a buffer to the transport layer. A Caller may call this method multiple times to send several buffers. Its upto the transport to decide how they are sent (chunked/unchunked etc). But should return the appropriate status code.

Precondition:
1. Transport connection should have been established by calling Openconnection of the SOAPTransport's implementaion. 2. If the implementaion of SOAPTransport intends to accumulate
Parameters:
pcSendBuffer  Null terminated character buffer to be sent.
pBufferid  void* that represents the buffer id. This pointer will only be needed by the transport layer when it needs to call caller provided callback function to indicate that transport layer has finished using the buffer. So when the transport layer intends to keep the pcSendBuffer for late sending, the value of pBufferid should also be stored. In case when pBufferid is NULL the transport layer can keep the buffer for late sending. But MUST never call the release buffer callback.
Returns:
Transport status. Three states are possible. They are, TRANSPORT_FINISHED - Passed buffer has been sent. So the caller can re-use the buffer TRANSPORT_IN_PROGRESS - Passed buffer is not yet sent. So the caller cannot re-use the buffer TRANSPORT_FAILED - Transport layer has failed. So the caller should not send any more buffers.
Postcondition:
In case this function returns TRANSPORT_IN_PROGRESS. The caller should wait till the transport layer calls the provided callback function with the bufferid to indicate that it can re-use the buffer. The transport layer MUST call the callback function for each buffer for which this function returned the status code TRANSPORT_IN_PROGRESS.


The documentation for this class was generated from the following file:
Generated on Tue Jun 29 09:27:58 2004 for AxisC++ by doxygen1.2.18