Back to index

nordugrid-arc-nox  1.1.0~rc6
Public Types | Public Member Functions
Arc::PayloadStreamInterface Class Reference

Stream-like Payload for Message object. More...

#include <PayloadStream.h>

Inheritance diagram for Arc::PayloadStreamInterface:
Inheritance graph
[legend]
Collaboration diagram for Arc::PayloadStreamInterface:
Collaboration graph
[legend]

List of all members.

Public Types

typedef signed long long int Size_t

Public Member Functions

 PayloadStreamInterface (void)
virtual ~PayloadStreamInterface (void)
virtual bool Get (char *buf, int &size)=0
 Extracts information from stream up to 'size' bytes.
virtual bool Get (std::string &buf)=0
 Read as many as possible (sane amount) of bytes into buf.
virtual std::string Get (void)=0
 Read as many as possible (sane amount) of bytes.
virtual bool Put (const char *buf, Size_t size)=0
 Push 'size' bytes from 'buf' into stream.
virtual bool Put (const std::string &buf)=0
 Push information from 'buf' into stream.
virtual bool Put (const char *buf)=0
 Push null terminated information from 'buf' into stream.
virtual operator bool (void)=0
 Returns true if stream is valid.
virtual bool operator! (void)=0
 Returns true if stream is invalid.
virtual int Timeout (void) const =0
 Query current timeout for Get() and Put() operations.
virtual void Timeout (int to)=0
 Set current timeout for Get() and Put() operations.
virtual Size_t Pos (void) const =0
 Returns current position in stream if supported.
virtual Size_t Size (void) const =0
 Returns size of underlying object if supported.
virtual Size_t Limit (void) const =0
 Returns position at which stream reading will stop if supported.

Detailed Description

Stream-like Payload for Message object.

This class is a virtual interface for managing stream-like source and destination. It's supposed to be passed through MCC chain as payload of Message. It must be treated by MCCs and Services as dynamic payload. This class is purely virtual.

Definition at line 15 of file PayloadStream.h.


Member Typedef Documentation

typedef signed long long int Arc::PayloadStreamInterface::Size_t

Definition at line 18 of file PayloadStream.h.


Constructor & Destructor Documentation

Definition at line 19 of file PayloadStream.h.

{ };
virtual Arc::PayloadStreamInterface::~PayloadStreamInterface ( void  ) [inline, virtual]

Definition at line 20 of file PayloadStream.h.

{ };

Member Function Documentation

virtual bool Arc::PayloadStreamInterface::Get ( char *  buf,
int &  size 
) [pure virtual]

Extracts information from stream up to 'size' bytes.

'size' contains number of read bytes on exit. Returns true in case of success.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, ARex::PayloadBigFile, Hopi::PayloadBigFile, Arc::PayloadTCPSocket, Arc::PayloadTLSStream, and Arc::PayloadGSIStream.

Here is the caller graph for this function:

virtual bool Arc::PayloadStreamInterface::Get ( std::string &  buf) [pure virtual]

Read as many as possible (sane amount) of bytes into buf.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadTCPSocket, Arc::PayloadTLSStream, and Arc::PayloadGSIStream.

virtual std::string Arc::PayloadStreamInterface::Get ( void  ) [pure virtual]

Read as many as possible (sane amount) of bytes.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadTCPSocket, Arc::PayloadTLSStream, and Arc::PayloadGSIStream.

virtual Size_t Arc::PayloadStreamInterface::Limit ( void  ) const [pure virtual]

Returns position at which stream reading will stop if supported.

That may be not same as Size() if instance is meant to provide access to only part of underlying obejct.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadGSIStream, ARex::PayloadBigFile, Hopi::PayloadBigFile, Arc::PayloadTCPSocket, and Arc::PayloadTLSStream.

Here is the caller graph for this function:

virtual Arc::PayloadStreamInterface::operator bool ( void  ) [pure virtual]
virtual bool Arc::PayloadStreamInterface::operator! ( void  ) [pure virtual]
virtual Size_t Arc::PayloadStreamInterface::Pos ( void  ) const [pure virtual]

Returns current position in stream if supported.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadGSIStream, ARex::PayloadBigFile, Hopi::PayloadBigFile, Arc::PayloadTCPSocket, and Arc::PayloadTLSStream.

Here is the caller graph for this function:

virtual bool Arc::PayloadStreamInterface::Put ( const char *  buf,
Size_t  size 
) [pure virtual]

Push 'size' bytes from 'buf' into stream.

Returns true on success.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadTCPSocket, Arc::PayloadTLSStream, and Arc::PayloadGSIStream.

Here is the caller graph for this function:

virtual bool Arc::PayloadStreamInterface::Put ( const std::string &  buf) [pure virtual]

Push information from 'buf' into stream.

Returns true on success.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadTCPSocket, Arc::PayloadGSIStream, and Arc::PayloadTLSStream.

virtual bool Arc::PayloadStreamInterface::Put ( const char *  buf) [pure virtual]

Push null terminated information from 'buf' into stream.

Returns true on success.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadTCPSocket, Arc::PayloadGSIStream, and Arc::PayloadTLSStream.

virtual Size_t Arc::PayloadStreamInterface::Size ( void  ) const [pure virtual]

Returns size of underlying object if supported.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadGSIStream, ARex::PayloadBigFile, Hopi::PayloadBigFile, Arc::PayloadTCPSocket, and Arc::PayloadTLSStream.

Here is the caller graph for this function:

virtual int Arc::PayloadStreamInterface::Timeout ( void  ) const [pure virtual]

Query current timeout for Get() and Put() operations.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadGSIStream, Arc::PayloadTCPSocket, and Arc::PayloadTLSStream.

Here is the caller graph for this function:

virtual void Arc::PayloadStreamInterface::Timeout ( int  to) [pure virtual]

Set current timeout for Get() and Put() operations.

Implemented in Arc::PayloadHTTP, Arc::PayloadStream, Arc::PayloadGSIStream, Arc::PayloadTCPSocket, and Arc::PayloadTLSStream.


The documentation for this class was generated from the following file: