libassa  3.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Attributes
ASSA::ServiceHandler< PEER_STREAM > Class Template Reference

#include <ServiceHandler.h>

Inheritance diagram for ASSA::ServiceHandler< PEER_STREAM >:
ASSA::EventHandler

List of all members.

Public Member Functions

 ServiceHandler ()
 Default constructor.
 ServiceHandler (PEER_STREAM *ps_)
 Constructor that takes PEER_STREAM as a parameter.
virtual ~ServiceHandler ()
 Destructor closes and deletes PEER_STREAM.
virtual int open (void)=0
 Pure virtual method defined by subclass.
virtual void close (void)
 Pure virtual method defined by subclass.
 operator PEER_STREAM & ()
 Conversion operator to type PEER_STREAM &.
PEER_STREAM & get_stream ()
 Return referenct to underlying PEER_STREAM.

Protected Attributes

PEER_STREAM * m_peerStream
 Concrete Socket instance.

Detailed Description

template<class PEER_STREAM>
class ASSA::ServiceHandler< PEER_STREAM >

Definition at line 31 of file ServiceHandler.h.


Constructor & Destructor Documentation

template<class PEER_STREAM>
ASSA::ServiceHandler< PEER_STREAM >::ServiceHandler ( ) [inline]

Default constructor.

In case of server-side, ServiceHandler is created by Acceptor, when new connection is detected.

Definition at line 38 of file ServiceHandler.h.

        : m_peerStream (new PEER_STREAM)
        {
            trace("ServiceHandler::ServiceHandler");
        }
template<class PEER_STREAM>
ASSA::ServiceHandler< PEER_STREAM >::ServiceHandler ( PEER_STREAM *  ps_) [inline]

Constructor that takes PEER_STREAM as a parameter.

In case of server-side, ServiceHandler is created by Acceptor, when new connection is detected. Note that PEER_STREAM is created by PEER_STREAM::accept () method.

Definition at line 49 of file ServiceHandler.h.

        : m_peerStream (ps_) 
        {
            trace("ServiceHandler::ServiceHandler");
        }
template<class PEER_STREAM>
virtual ASSA::ServiceHandler< PEER_STREAM >::~ServiceHandler ( ) [inline, virtual]

Destructor closes and deletes PEER_STREAM.

Definition at line 56 of file ServiceHandler.h.

                               {
        trace("ServiceHandler::~ServiceHandler");

        if ( m_peerStream ) {
            delete m_peerStream;
            m_peerStream = (PEER_STREAM*) NULL;
        }
    }

Member Function Documentation

template<class PEER_STREAM>
virtual void ASSA::ServiceHandler< PEER_STREAM >::close ( void  ) [inline, virtual]

Pure virtual method defined by subclass.

The close() hook closes PEER_STREAM by default The behavior of this method can be changed by a subclass, which typically performs any service-specific cleanup. EventHandler::handle_close() method of base class EventHandler is called when client closes connection. ServiceHandler object can destroy itself from there.

Definition at line 81 of file ServiceHandler.h.

        {
            trace("ServiceHandler::close");
            if ( m_peerStream ) m_peerStream->close ();
        }
template<class PEER_STREAM>
PEER_STREAM& ASSA::ServiceHandler< PEER_STREAM >::get_stream ( ) [inline]

Return referenct to underlying PEER_STREAM.

Definition at line 100 of file ServiceHandler.h.

{ return *m_peerStream; }
template<class PEER_STREAM>
virtual int ASSA::ServiceHandler< PEER_STREAM >::open ( void  ) [pure virtual]

Pure virtual method defined by subclass.

The open() hook is called by the Acceptor or Connector once a connection is established. The behavior of this method must be defined by a subclass, which typically performs any service-specific initialization.

Implemented in ASSA::RemoteLogger.

template<class PEER_STREAM>
ASSA::ServiceHandler< PEER_STREAM >::operator PEER_STREAM & ( ) [inline]

Conversion operator to type PEER_STREAM &.

Comes handy when you want to call underlying PEER_STREAM member functions directly.

Returns:
reference to underlying stream mechanism

Definition at line 93 of file ServiceHandler.h.

References ASSA::ServiceHandler< PEER_STREAM >::m_peerStream.

        { 
            // trace("ServiceHandler::opt PEER_STREAM& ()");
            return *m_peerStream;
        }

Member Data Documentation

template<class PEER_STREAM>
PEER_STREAM* ASSA::ServiceHandler< PEER_STREAM >::m_peerStream [protected]

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