Loading...
Searching...
No Matches
ASSA::ServiceHandler< PEER_STREAM > Class Template Referenceabstract

`#include <ServiceHandler.h>`

Inheritance diagram for ASSA::ServiceHandler< PEER_STREAM >:

## 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

## ServiceHandler() [1/2]

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");
}
trace
#define trace(s)
trace() is used to trace function call chain in C++ program.
Definition Logger.h:429
ASSA::ServiceHandler::m_peerStream
PEER_STREAM * m_peerStream
Concrete Socket instance.
Definition ServiceHandler.h:106

References trace.

## ServiceHandler() [2/2]

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");
}

References trace.

## ~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;
}
}

References ASSA::ServiceHandler< PEER_STREAM >::m_peerStream, and trace.

## Member Function Documentation

## close()

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 ();
}

References ASSA::ServiceHandler< PEER_STREAM >::m_peerStream, and trace.

## get_stream()

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; }

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

## open()

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.

## operator PEER_STREAM &()

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.

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

## Member Data Documentation

## m_peerStream

template<class PEER_STREAM >

PEER_STREAM* ASSA::ServiceHandler< PEER_STREAM >::m_peerStream

protected

Concrete Socket instance.

ServiceHandler owns this object which is delete()-ed in destructor.

Definition at line 106 of file ServiceHandler.h.

Referenced by ASSA::ServiceHandler< PEER_STREAM >::close(), ASSA::ServiceHandler< PEER_STREAM >::get_stream(), ASSA::ServiceHandler< ASSA::IPv4Socket >::operator ASSA::IPv4Socket &(), and ASSA::ServiceHandler< PEER_STREAM >::~ServiceHandler().

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

- ServiceHandler.h