libassa  3.5.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Attributes | List of all members
ASSA::ServiceHandler< PEER_STREAM > Class Template Reference

#include <ServiceHandler.h>

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

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.
- Public Member Functions inherited from ASSA::EventHandler
 EventHandler ()
 Constructor.
virtual ~EventHandler ()
 Virtual destructor.
virtual int handle_read (int fd)
 Read event callback.
virtual int handle_write (int fd)
 Write handler callback.
virtual int handle_except (int fd)
 Exception handler callback.
virtual int handle_timeout (TimerId tid)
 Timeout handler callback.
virtual int handle_signal (int signum_)
 Signal handler callback.
virtual int handle_close (int fd)
 EOF on peer socket handler callback.
virtual void resetState (void)
 A hook for derived class to reset internal state as needed.
void set_id (const std::string &id_)
 Set EventHandler ID.
std::string get_id () const
 Retrieve EventHandler ID.

Protected Attributes

PEER_STREAM * m_peerStream
 Concrete Socket instance.
- Protected Attributes inherited from ASSA::EventHandler
std::string m_id

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 ( )
inlinevirtual

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  )
inlinevirtual

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: