Easy Simple Network Library  0.3.7
Public Member Functions | List of all members
esnlib::WorkManager Class Referenceabstract

Work Manager class (interface), it will work like a thread pool. More...

#include <WorkManager.h>

Public Member Functions

virtual int Stop ()=0
 
virtual int Abort ()=0
 
virtual int GetState ()=0
 
virtual int GetWorkerCount ()=0
 
virtual int GetTaskCount ()=0
 
virtual int AddWorkTask (WorkPtr work, BufferPtr workdata)=0
 
virtual void SetBufferManager (BufferManagerPtr manager)=0
 
virtual int PutWork (int key, WorkPtr work)=0
 
virtual WorkPtr GetWork (int key)=0
 
virtual int PutWork (const std::string &key, WorkPtr work)=0
 
virtual WorkPtr GetWork (const std::string &key)=0
 

Detailed Description

Work Manager class (interface), it will work like a thread pool.

Member Function Documentation

virtual int esnlib::WorkManager::Abort ( )
pure virtual

Force to stop anything

Returns
Current state of the work manager
virtual int esnlib::WorkManager::AddWorkTask ( WorkPtr  work,
BufferPtr  workdata 
)
pure virtual

Add a new work task

Parameters
workThe work object, which will provide the callback function for the threads
workdataThe working data for the task
Returns
The total number of the tasks
virtual int esnlib::WorkManager::GetState ( )
pure virtual

Get current state of the work manager

Returns
Current state of the work manager
virtual int esnlib::WorkManager::GetTaskCount ( )
pure virtual

Get total number of the tasks

Returns
The total number of the tasks
virtual WorkPtr esnlib::WorkManager::GetWork ( int  key)
pure virtual

Get a work object by an integer key

Parameters
keyThe integer key
Returns
The pointer of the work object
virtual WorkPtr esnlib::WorkManager::GetWork ( const std::string &  key)
pure virtual

Get a work object by a string key

Parameters
keyThe string key
Returns
The pointer of the work object
virtual int esnlib::WorkManager::GetWorkerCount ( )
pure virtual

Get total number of the workers(threads)

Returns
The total number of the workers(threads)
virtual int esnlib::WorkManager::PutWork ( int  key,
WorkPtr  work 
)
pure virtual

Add a work object with an integer key

Parameters
keyThe integer key
workThe work object, which will provide the callback function for the threads
Returns
The total number of the works mapped by integer keys
virtual int esnlib::WorkManager::PutWork ( const std::string &  key,
WorkPtr  work 
)
pure virtual

Add a work object with a string key

Parameters
keyThe string key
workThe work object, which will provide the callback function for the threads
Returns
The total number of the works mapped by string keys
virtual void esnlib::WorkManager::SetBufferManager ( BufferManagerPtr  manager)
pure virtual

Set Buffer Manager (memory pool)

Parameters
managerThe pointer of the buffer manager
virtual int esnlib::WorkManager::Stop ( )
pure virtual

Stop running gently

Returns
Current state of the work manager

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