DcmTransportConnection Class Reference

this class represents a TCP/IP based transport connection which can be a transparent TCP/IP socket communication or a secure transport protocol such as TLS. More...

Inheritance diagram for DcmTransportConnection:

DcmTCPConnection DcmTLSConnection List of all members.

Public Member Functions

 DcmTransportConnection (int openSocket)
 constructor.
virtual ~DcmTransportConnection ()
 destructor
virtual DcmTransportLayerStatus serverSideHandshake ()=0
 performs server side handshake on established socket.
virtual DcmTransportLayerStatus clientSideHandshake ()=0
 performs client side handshake on established socket.
virtual DcmTransportLayerStatus renegotiate (const char *newSuite)=0
 performs a re-negotiation of the connection with different connection parameters.
virtual ssize_t read (void *buf, size_t nbyte)=0
 attempts to read nbyte bytes from the transport connection and writes them into the given buffer.
virtual ssize_t write (void *buf, size_t nbyte)=0
 attempts to write nbyte bytes from the given buffer to the transport connection.
virtual void close ()=0
 Closes the transport connection.
virtual unsigned long getPeerCertificateLength ()=0
 returns the size in bytes of the peer certificate of a secure connection.
virtual unsigned long getPeerCertificate (void *buf, unsigned long bufLen)=0
virtual OFBool networkDataAvailable (int timeout)=0
 checks if data is available to be read on the transport connection.
virtual OFBool isTransparentConnection ()=0
 returns OFTrue if this connection is a transparent TCP connection, OFFalse if the connection is a secure connection.
virtual OFStringdumpConnectionParameters (OFString &str)=0
 dump the characteristics of the current connection
void dumpConnectionParameters (STD_NAMESPACE ostream &out)
 prints the characteristics of the current connection on the given output stream.
virtual const char * errorString (DcmTransportLayerStatus code)=0
 returns an error string for a given error code.

Static Public Member Functions

static OFBool selectReadableAssociation (DcmTransportConnection *connections[], int connCount, int timeout)
 indicates which of the specified transport connections is ready for reading.

Protected Member Functions

int getSocket ()
 returns the socket file descriptor managed by this object.
void setSocket (int socket)
 set the socket file descriptor managed by this object.

Private Member Functions

 DcmTransportConnection (const DcmTransportConnection &)
 private undefined copy constructor
DcmTransportConnectionoperator= (const DcmTransportConnection &)
 private undefined assignment operator

Static Private Member Functions

static OFBool safeSelectReadableAssociation (DcmTransportConnection *connections[], int connCount, int timeout)
 indicates which of the specified transport connections is ready for reading.
static OFBool fastSelectReadableAssociation (DcmTransportConnection *connections[], int connCount, int timeout)
 indicates which of the specified transport connections is ready for reading.

Private Attributes

int theSocket
 the socket file descriptor used by the transport connection.

Detailed Description

this class represents a TCP/IP based transport connection which can be a transparent TCP/IP socket communication or a secure transport protocol such as TLS.

Definition at line 45 of file dcmtrans.h.


Constructor & Destructor Documentation

DcmTransportConnection::DcmTransportConnection ( int  openSocket  ) 

constructor.

Parameters:
openSocket TCP/IP socket to be used for the transport connection. the connection must already be establised on socket level. This object takes over control of the socket.


Member Function Documentation

virtual DcmTransportLayerStatus DcmTransportConnection::serverSideHandshake (  )  [pure virtual]

performs server side handshake on established socket.

This function is used to establish a secure transport connection over the established TCP connection. Abstract method.

Returns:
TCS_ok if successful, an error code otherwise.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual DcmTransportLayerStatus DcmTransportConnection::clientSideHandshake (  )  [pure virtual]

performs client side handshake on established socket.

This function is used to establish a secure transport connection over the established TCP connection. Abstract method.

Returns:
TCS_ok if successful, an error code otherwise.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual DcmTransportLayerStatus DcmTransportConnection::renegotiate ( const char *  newSuite  )  [pure virtual]

performs a re-negotiation of the connection with different connection parameters.

Used to change the parameters of the secure transport connection. Abstract method.

Parameters:
newSuite string identifying the ciphersuite to be negotiated.
Returns:
TCS_ok if successful, an error code otherwise.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual ssize_t DcmTransportConnection::read ( void *  buf,
size_t  nbyte 
) [pure virtual]

attempts to read nbyte bytes from the transport connection and writes them into the given buffer.

Abstract method.

Parameters:
buf buffer
nbyte number of bytes to read
Returns:
number of bytes read, negative number if unsuccessful.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual ssize_t DcmTransportConnection::write ( void *  buf,
size_t  nbyte 
) [pure virtual]

attempts to write nbyte bytes from the given buffer to the transport connection.

Abstract method.

Parameters:
buf buffer
nbyte number of bytes to write
Returns:
number of bytes written, negative number if unsuccessful.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual void DcmTransportConnection::close (  )  [pure virtual]

Closes the transport connection.

If a secure connection is used, a closure alert is sent before the connection is closed. Abstract method.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual unsigned long DcmTransportConnection::getPeerCertificateLength (  )  [pure virtual]

returns the size in bytes of the peer certificate of a secure connection.

May return 0 if connection is transparent TCP/IP.

Returns:
peer certificate length in bytes

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual OFBool DcmTransportConnection::networkDataAvailable ( int  timeout  )  [pure virtual]

checks if data is available to be read on the transport connection.

Abstract method.

Parameters:
timeout maximum number of seconds to wait if no data is available. If this parameter is 0, the function does not block.
Returns:
OFTrue if data is available, OFFalse otherwise.

Implemented in DcmTCPConnection, and DcmTLSConnection.

virtual OFString& DcmTransportConnection::dumpConnectionParameters ( OFString str  )  [pure virtual]

dump the characteristics of the current connection

Parameters:
str the string to dump into
Returns:
reference to string

Implemented in DcmTCPConnection, and DcmTLSConnection.

void DcmTransportConnection::dumpConnectionParameters ( STD_NAMESPACE ostream &  out  ) 

prints the characteristics of the current connection on the given output stream.

Parameters:
out output stream
Deprecated:
Please use the other dumpConnectionParameters() function instead!

virtual const char* DcmTransportConnection::errorString ( DcmTransportLayerStatus  code  )  [pure virtual]

returns an error string for a given error code.

Parameters:
code error code
Returns:
description for error code

Implemented in DcmTCPConnection, and DcmTLSConnection.

static OFBool DcmTransportConnection::selectReadableAssociation ( DcmTransportConnection connections[],
int  connCount,
int  timeout 
) [static]

indicates which of the specified transport connections is ready for reading.

If none of the specified transport connections is ready for reading, this method blocks up to the specified timeout interval or until one of the connections becomes readable, whatever occurs first.

Parameters:
connections list of transport connections. May contain NULL entries. Upon successful return of this method, all transport connections which are not ready for reading are set to NULL in this array.
connCount number of entries in connections array.
timeout number of seconds for timeout. If timeout is 0, this method does not block.
Returns:
OFTrue if one or more connections are readable upon return from this method, OFFalse if no connection is ready for reading.

int DcmTransportConnection::getSocket (  )  [inline, protected]

returns the socket file descriptor managed by this object.

Returns:
socket file descriptor

Definition at line 172 of file dcmtrans.h.

References theSocket.

void DcmTransportConnection::setSocket ( int  socket  )  [inline, protected]

set the socket file descriptor managed by this object.

Parameters:
socket file descriptor

Definition at line 177 of file dcmtrans.h.

References theSocket.

static OFBool DcmTransportConnection::safeSelectReadableAssociation ( DcmTransportConnection connections[],
int  connCount,
int  timeout 
) [static, private]

indicates which of the specified transport connections is ready for reading.

If none of the specified transport connections is ready for reading, this method blocks up to the specified timeout interval or until one of the connections becomes readable, whatever occurs first. This method uses a safe approach that also works with secure transport connections, but which may be slower than a select() system call and consumes slightly more computation time.

Parameters:
connections list of transport connections. May contain NULL entries. Upon successful return of this method, all transport connections which are not ready for reading are set to NULL in this array.
connCount number of entries in connections array.
timeout number of seconds for timeout. If timeout is 0, this method does not block.
Returns:
OFTrue if one or more connections are readable upon return from this method, OFFalse if no connection is ready for reading.

static OFBool DcmTransportConnection::fastSelectReadableAssociation ( DcmTransportConnection connections[],
int  connCount,
int  timeout 
) [static, private]

indicates which of the specified transport connections is ready for reading.

If none of the specified transport connections is ready for reading, this method blocks up to the specified timeout interval or until one of the connections becomes readable, whatever occurs first. This method uses the select() system call. It may only be used with an array of transparent TCP transport connections. This precondition must be assured by the caller.

Parameters:
connections list of transport connections. May contain NULL entries. Upon successful return of this method, all transport connections which are not ready for reading are set to NULL in this array.
connCount number of entries in connections array.
timeout number of seconds for timeout. If timeout is 0, this method does not block.
Returns:
OFTrue if one or more connections are readable upon return from this method, OFFalse if no connection is ready for reading.


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


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1