Public Member Functions | Protected Member Functions

zeus::TSocket Class Reference

#include <Socket.h>

Inheritance diagram for zeus::TSocket:
zeus::TAbstractSocket zeus::IInputStream zeus::IOutputStream zeus::TZObject zeus::IZUnknown zeus::IZUnknown zeus::IZUnknown

List of all members.

Public Member Functions

 TSocket (TIPAddress &rAddress)
 TSocket (const TString &rstrAddr, Uint uiPort)
 TSocket (Int iFD, struct sockaddr_in &rAddress)
virtual Retval connect ()
bool isKeepAlive () const
void setKeepAlive (bool bMode)
virtual bool MQUALIFIER available () const
virtual bool MQUALIFIER isEndReached () const
virtual Retval MQUALIFIER read (char *pBuffer, Int iBufferSize, Int &rValidSize) const
virtual Int MQUALIFIER readItem () const
virtual Int8 MQUALIFIER readInt8 (bool *pError) const
virtual Int16 MQUALIFIER readInt16 (bool *pError) const
virtual Int32 MQUALIFIER readInt32 (bool *pError) const
virtual Int64 MQUALIFIER readInt64 (bool *pError) const
virtual Uint8 MQUALIFIER readUint8 (bool *pError) const
virtual Uint16 MQUALIFIER readUint16 (bool *pError) const
virtual Uint32 MQUALIFIER readUint32 (bool *pError) const
virtual Uint64 MQUALIFIER readUint64 (bool *pError) const
virtual Float64 MQUALIFIER readFloat64 (bool *pError) const
virtual Float32 MQUALIFIER readFloat32 (bool *pError) const
virtual bool MQUALIFIER readBool (bool *pError) const
virtual Retval MQUALIFIER readArray (IByteArray &rData) const
virtual Retval MQUALIFIER readString (IString &rstrData) const
virtual void MQUALIFIER close ()
virtual void MQUALIFIER reset ()
virtual bool MQUALIFIER skip (Int iBytes=1)
virtual Retval MQUALIFIER write (const char *pBuffer, Int iBufferSize)
virtual Retval MQUALIFIER writeInt8 (Int8 cData)
virtual Retval MQUALIFIER writeInt16 (Int16 sData)
virtual Retval MQUALIFIER writeInt32 (Int32 lData)
virtual Retval MQUALIFIER writeInt64 (const Int64 &rldData)
virtual Retval MQUALIFIER writeUint8 (Uint8 ucData)
virtual Retval MQUALIFIER writeUint16 (Uint16 usData)
virtual Retval MQUALIFIER writeUint32 (Uint32 ulData)
virtual Retval MQUALIFIER writeUint64 (const Uint64 &ruldData)
virtual Retval MQUALIFIER writeFloat32 (Float32 fData)
virtual Retval MQUALIFIER writeFloat64 (const Float64 &rdData)
virtual Retval MQUALIFIER writeBool (bool bData)
virtual Retval MQUALIFIER writeArray (const IByteArray &rData)
virtual Retval MQUALIFIER writeString (const IString &rData)
virtual void MQUALIFIER flush ()
virtual Retval MQUALIFIER askForInterface (const InterfaceID &rInterfaceID, IZUnknown *&rpIface)
virtual void MQUALIFIER addRef () const
virtual void MQUALIFIER release () const

Protected Member Functions

 TSocket ()
virtual ~TSocket ()
virtual void openSocket ()

Detailed Description

The socket class implements a connection oriented communication. The address of the socket represents the remote address of the server or a remote client socket. The class implements the input and output streaming interfaces. This allows using filters and other streaming techniques.


Constructor & Destructor Documentation

TSocket::TSocket ( TIPAddress rAddress )

Creates a Client Socket connecting to a server at a given address

Parameters:
rAddress: address
TSocket::TSocket ( const TString rstrAddr,
Uint  uiPort 
)

Creates a Client Socket connecting to a server at a given address

Parameters:
rstrAddr: address or host name of the server
uiPort: Listening port
TSocket::TSocket ( Int  iFD,
struct sockaddr_in &  rAddress 
)

Creates a Socket out of a file descripitor. This constructor is used by server sockets.

Parameters:
iFD: file desc.
rAddress: address object
TSocket::TSocket (  ) [protected]

Creates a Socket with invalid file descriptor. This method is protected and might be used to create special sockets in sub classes.

TSocket::~TSocket (  ) [protected, virtual]

Destroys the Socket


Member Function Documentation

virtual void MQUALIFIER zeus::TSocket::addRef (  ) const [virtual]

This method increases the reference counter of this object. The call is const because it will not change the content of the object, since the reference counter is not an object data. This allows to handle const reference using addRef() and release().

Implements zeus::IZUnknown.

virtual Retval MQUALIFIER zeus::TSocket::askForInterface ( const InterfaceID rInterfaceID,
IZUnknown *&  rpIface 
) [virtual]

This method is used to cast to different interface types. This is a secure way asking for other implemented interfaces, since C++ does not reject invalid casts.

Parameters:
rInterfaceID: ID of the requested interface
rpIface: return value of the interface. The pointer contains the address of the requested interface
Return values:
RET_NOERROR: Interface returned
RET_UNKNOWN_INTERFACE: Interface is not valid or not implemented

Implements zeus::IZUnknown.

virtual bool MQUALIFIER zeus::TSocket::available (  ) const [inline, virtual]

Returns if the input stream is available (valid).

Return values:
true: stream is ok
false: invalid stream

Implements zeus::IInputStream.

virtual void MQUALIFIER zeus::TSocket::close (  ) [inline, virtual]

Closes the input stream

Implements zeus::IInputStream.

Retval TSocket::connect (  ) [virtual]

Trys to connect to a server

Returns:
see TAbstractSocket::getErrorCode()
Note:
This method can be called from other threads

Implements zeus::TAbstractSocket.

virtual void MQUALIFIER zeus::TSocket::flush (  ) [inline, virtual]

Flush the output stream. This will send the buffer to the destination.

Implements zeus::IOutputStream.

virtual bool MQUALIFIER zeus::TSocket::isEndReached (  ) const [inline, virtual]

This method checks if the stream is at the end. If a stream is at the end the methods readDouble(), readLong(), readByte() and readBool() should not called anymore. They will return zero. You must call this method before getting data from the stream.

Return values:
true: Stream is at the end
false: Stream is not at the end

Implements zeus::IInputStream.

bool zeus::TSocket::isKeepAlive (  ) const [inline]

checks if the keepalive flag is set

Return values:
true: flag is set
false: flag is not set
void TSocket::openSocket (  ) [protected, virtual]

opens the socket

Implements zeus::TAbstractSocket.

Retval MQUALIFIER TSocket::read ( char *  pBuffer,
Int  iBufferSize,
Int &  rValidSize 
) const [virtual]
See also:
IInputStream::read

Implements zeus::IInputStream.

Retval MQUALIFIER TSocket::readArray ( IByteArray rData ) const [virtual]
bool MQUALIFIER zeus::TSocket::readBool ( bool *  pError ) const [inline, virtual]
Float32 MQUALIFIER TSocket::readFloat32 ( bool *  pError ) const [virtual]
Float64 MQUALIFIER TSocket::readFloat64 ( bool *  pError ) const [virtual]
Int16 MQUALIFIER TSocket::readInt16 ( bool *  pError ) const [virtual]
Int32 MQUALIFIER TSocket::readInt32 ( bool *  pError ) const [virtual]
Int64 MQUALIFIER TSocket::readInt64 ( bool *  pError ) const [virtual]
Int8 MQUALIFIER TSocket::readInt8 ( bool *  pError ) const [virtual]
Int MQUALIFIER TSocket::readItem (  ) const [virtual]
Retval MQUALIFIER TSocket::readString ( IString rstrData ) const [virtual]
Uint16 MQUALIFIER zeus::TSocket::readUint16 ( bool *  pError ) const [inline, virtual]
Uint32 MQUALIFIER zeus::TSocket::readUint32 ( bool *  pError ) const [inline, virtual]
Uint64 MQUALIFIER zeus::TSocket::readUint64 ( bool *  pError ) const [inline, virtual]
Uint8 MQUALIFIER zeus::TSocket::readUint8 ( bool *  pError ) const [inline, virtual]
virtual void MQUALIFIER zeus::TSocket::release (  ) const [virtual]

This method decreases the reference counter of this object. This call is const as well (like addRef()). The killing of an object is allowed by const method, because the content is not used any more.

Implements zeus::IZUnknown.

virtual void MQUALIFIER zeus::TSocket::reset (  ) [inline, virtual]

Sets the stream position back to the beginning

Implements zeus::IInputStream.

void zeus::TSocket::setKeepAlive ( bool  bMode ) [inline]

sets the keep alive flag

Parameters:
bMode: flag
bool MQUALIFIER TSocket::skip ( Int  iBytes = 1 ) [virtual]
See also:
IInputStream::skip

Implements zeus::IInputStream.

Retval MQUALIFIER TSocket::write ( const char *  pBuffer,
Int  iBufferSize 
) [virtual]
Retval MQUALIFIER TSocket::writeArray ( const IByteArray rData ) [virtual]
Retval MQUALIFIER zeus::TSocket::writeBool ( bool  bData ) [inline, virtual]
Retval MQUALIFIER TSocket::writeFloat32 ( Float32  fData ) [virtual]
Retval MQUALIFIER TSocket::writeFloat64 ( const Float64 rdData ) [virtual]
Retval MQUALIFIER TSocket::writeInt16 ( Int16  sData ) [virtual]
Retval MQUALIFIER TSocket::writeInt32 ( Int32  lData ) [virtual]
Retval MQUALIFIER TSocket::writeInt64 ( const Int64 rldData ) [virtual]
Retval MQUALIFIER TSocket::writeInt8 ( Int8  cData ) [virtual]
Retval MQUALIFIER TSocket::writeString ( const IString rData ) [virtual]
Retval MQUALIFIER zeus::TSocket::writeUint16 ( Uint16  usData ) [inline, virtual]
Retval MQUALIFIER zeus::TSocket::writeUint32 ( Uint32  ulData ) [inline, virtual]
Retval MQUALIFIER zeus::TSocket::writeUint64 ( const Uint64 ruldData ) [inline, virtual]
Retval MQUALIFIER zeus::TSocket::writeUint8 ( Uint8  ucData ) [inline, virtual]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


Written by Benjamin Hadorn http://www.xatlantis.ch.
Last change made on Sun Jan 22 2012 15:28:28