Easy Simple Network Library  0.3.7
All Classes Functions Modules
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
esnlib::MessageHandler Class Reference

Common Message Handler class, an event handler who can handle network IO events for common message(format: header + body) More...

#include <MessageHandler.h>

Inheritance diagram for esnlib::MessageHandler:
esnlib::IoHandler

Public Member Functions

 MessageHandler ()
 Constructor function.
 
 MessageHandler (WorkManagerPtr manager)
 
 MessageHandler (WorkManagerPtr manager, WorkPtr work)
 
virtual ~MessageHandler ()
 Destructor function.
 
WorkManagerPtr GetWorkManager ()
 
WorkPtr GetDefaultWork ()
 
virtual int GetCode (IoBuffer *data)
 
virtual int GetFlag (IoBuffer *data)
 
virtual int GetIntKey (IoBuffer *data)
 
virtual std::string GetStrKey (IoBuffer *data)
 
virtual bool IsOrderlyMessage (IoBuffer *data)
 
virtual void HandleMessage (SessionPtr session, IoBufferPtr data)
 
virtual int OnRead (SessionPtr session, IoBufferPtr data)
 
virtual int OnWrite (SessionPtr session, IoBufferPtr data)
 
virtual void OnConnect (SessionPtr session)
 
virtual void OnDisconnect (SessionPtr session)
 
virtual void OnIdle (SessionPtr session, int idleType)
 
virtual void OnError (SessionPtr session, int errorType, int errorCode, const std::string &errorMsg)
 

Protected Member Functions

int DefaultAsyncProcessOnWrite (SessionPtr session, IoBufferPtr data)
 

Protected Attributes

WorkManagerPtr m_manager
 
WorkPtr m_work
 

Detailed Description

Common Message Handler class, an event handler who can handle network IO events for common message(format: header + body)

Constructor & Destructor Documentation

esnlib::MessageHandler::MessageHandler ( WorkManagerPtr  manager)
explicit

Constructor function

Parameters
managerThe pointer of the work manager (a thread pool manager)
esnlib::MessageHandler::MessageHandler ( WorkManagerPtr  manager,
WorkPtr  work 
)

Constructor function

Parameters
managerThe pointer of the work manager (a thread pool manager)
workThe pointer of the work (which provides the callback function for the threads)

Member Function Documentation

int esnlib::MessageHandler::DefaultAsyncProcessOnWrite ( SessionPtr  session,
IoBufferPtr  data 
)
protected

The default callback function for the OnWrite event to process outgoing data asynchronously

Parameters
sessionCurrent session
dataThe buffer pointer of the data written
Returns
The flags of the event processing: 1 = async, 2 = concurrent, 3 = both 1 and 2
virtual int esnlib::MessageHandler::GetCode ( IoBuffer data)
virtual

Get the code from the buffer data

Parameters
dataThe buffer data
Returns
The code
WorkPtr esnlib::MessageHandler::GetDefaultWork ( )

Get default work (the action that will be executed in threads)

Returns
The DefaultWork (pointer)
virtual int esnlib::MessageHandler::GetFlag ( IoBuffer data)
virtual

Get the flag from the buffer data

Parameters
dataThe buffer data
Returns
The flag
virtual int esnlib::MessageHandler::GetIntKey ( IoBuffer data)
virtual

Get the integer key from the buffer data

Parameters
dataThe buffer data
Returns
The integer key
virtual std::string esnlib::MessageHandler::GetStrKey ( IoBuffer data)
virtual

Get the string key from the buffer data

Parameters
dataThe buffer data
Returns
The string key
WorkManagerPtr esnlib::MessageHandler::GetWorkManager ( )

Get WorkManager (the thread pool)

Returns
The WorkManager (pointer)
virtual void esnlib::MessageHandler::HandleMessage ( SessionPtr  session,
IoBufferPtr  data 
)
virtual

Handle incoming data

Parameters
sessionCurrent session
dataThe incoming data
virtual bool esnlib::MessageHandler::IsOrderlyMessage ( IoBuffer data)
virtual

Check whether the message is an orderly message

Parameters
dataThe message data
Returns
Return true if the message is orderly
virtual void esnlib::MessageHandler::OnConnect ( SessionPtr  session)
virtual

The callback function for the Connect event

Parameters
sessionCurrent session

Implements esnlib::IoHandler.

virtual void esnlib::MessageHandler::OnDisconnect ( SessionPtr  session)
virtual

The callback function for the Disconnect event

Parameters
sessionCurrent session

Implements esnlib::IoHandler.

virtual void esnlib::MessageHandler::OnError ( SessionPtr  session,
int  errorType,
int  errorCode,
const std::string &  errorMsg 
)
virtual

The callback function for the Error event

Parameters
sessionCurrent session
errorTypeThe error type (1 for read error, 2 for write error, 0 for connect error)
errorCodeThe error code (if error type == 0 and error code == 0, that means connect timeout)
errorMsgThe error message

Implements esnlib::IoHandler.

virtual void esnlib::MessageHandler::OnIdle ( SessionPtr  session,
int  idleType 
)
virtual

The callback function for the Idle event

Parameters
sessionCurrent session
idleTypeThe idle type (1 for read idle, 2 for write idle, 0 for both)

Implements esnlib::IoHandler.

virtual int esnlib::MessageHandler::OnRead ( SessionPtr  session,
IoBufferPtr  data 
)
virtual

The callback function for the Read event

Parameters
sessionCurrent session
dataThe buffer pointer of the useful data read
Returns
The flags of the event processing: 1 = async, 2 = concurrent, 3 = both 1 and 2

Implements esnlib::IoHandler.

virtual int esnlib::MessageHandler::OnWrite ( SessionPtr  session,
IoBufferPtr  data 
)
virtual

The callback function for the Write event

Parameters
sessionCurrent session
dataThe buffer pointer of the data written
Returns
The flags of the event processing: 1 = async, 2 = concurrent, 3 = both 1 and 2

Implements esnlib::IoHandler.


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