Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages

TaskManager Class Reference

#include <taskmanager.h>

Inheritance diagram for TaskManager:

Inheritance graph
[legend]
Collaboration diagram for TaskManager:

Collaboration graph
[legend]
List of all members.

Detailed Description

Managing tasks in threads.

Author:
Mattias Jansson (mattias@realityrift.com)


Public Member Functions

 TaskManager (int iWorkerThreads)
virtual ~TaskManager ()
void Schedule (ThreadMethod *pkTask)
void Lock ()
void Unlock ()
void WaitForEvent ()
void BroadcastEvent ()
void SetName (const std::string &rstrName)

Protected Member Functions

void Remove (Thread *pkThread)

Protected Attributes

std::vector< Thread * > m_vpkThreads
std::vector< ThreadMethod * > m_vpkQueue
unsigned int m_iMaxThreads


Constructor & Destructor Documentation

TaskManager int  iWorkerThreads  ) 
 

Create manager with worker threads

Parameters:
iWorkerThreads Number of worker threads

virtual ~TaskManager  )  [virtual]
 

Terminate all worker threads and clear queue


Member Function Documentation

void Remove Thread pkThread  )  [protected]
 

Remove terminated thread from worker vector

Parameters:
pkThread Thread to remove

void Schedule ThreadMethod pkTask  ) 
 

Add task

Parameters:
pkTask Task method

void Lock  )  [inherited]
 

Lock mutex (will block until lock obtained)

void Unlock  )  [inherited]
 

Unlock mutex

void WaitForEvent  )  [inherited]
 

Block until event occurs

void BroadcastEvent  )  [inherited]
 

Broadcast event, wake up all waiting for event

void SetName const std::string &  rstrName  )  [inline, inherited]
 

Set mutex name

Parameters:
rstrName New mutex name


Member Data Documentation

std::vector< Thread* > m_vpkThreads [protected]
 

Worker threads

std::vector< ThreadMethod* > m_vpkQueue [protected]
 

Task queue

unsigned int m_iMaxThreads [protected]
 

Max number of active worker threads


The documentation for this class was generated from the following file:
Generated on Wed Jan 21 14:21:15 2004 for NeoEngine by doxygen 1.3.5