gpucalc::SimpleTaskManager Class Reference

#include <simple_task_manager.h>

Inheritance diagram for gpucalc::SimpleTaskManager:

Inheritance graph

List of all members.

Public Member Functions

Taskcreate (const std::string &TaskName, bool ReturnIfExists=false)
 Creates Task with given name.
void destroy (Task *task)
 Destroy Task.
Taskfind (const std::string &TaskName)
const std::string & getClassName () const
 Returns name of class of our object.
const std::string & getObjectName () const
 Returns name of our object.
void getSpecificParameter (const std::string &ParameterName, void *ParameterValue)
 Method for obtaining some specific parameters, such as texture specific params, and so on.
bool isLocked () const
 returns state of object.
 SimpleTaskManager ()
 ~SimpleTaskManager ()

Protected Member Functions

void addSpecificParameter (const std::string &ParameterName, void *ParameterValue, size_t Size)
void lock ()
void unlock ()

Private Types

typedef std::map< std::string,
SimpleTask * > 
SimpleTaskMap

Private Attributes

SimpleTaskMap mSimpleTaskMap


Detailed Description

Definition at line 49 of file simple_task_manager.h.


Member Typedef Documentation

typedef std::map<std::string, SimpleTask *> gpucalc::SimpleTaskManager::SimpleTaskMap [private]

Definition at line 73 of file simple_task_manager.h.


Constructor & Destructor Documentation

gpucalc::SimpleTaskManager::SimpleTaskManager (  ) 

Definition at line 40 of file simple_task_manager.cpp.

gpucalc::SimpleTaskManager::~SimpleTaskManager (  ) 

Definition at line 45 of file simple_task_manager.cpp.

00046  {
00047   clearContainer(mSimpleTaskMap);
00048  }


Member Function Documentation

void gpucalc::Object::addSpecificParameter ( const std::string &  ParameterName,
void *  ParameterValue,
size_t  Size 
) [inline, protected, inherited]

Definition at line 254 of file object.h.

00255    {
00256     SpecificParametersMap::iterator i = mSpecificParameters.find(ParameterName);
00257     if (i != mSpecificParameters.end())
00258     {
00259      mSpecificParameters.erase(i);
00260     }
00261     mSpecificParameters[ParameterName] = Any(ParameterValue, Size);
00262    }

Task * gpucalc::SimpleTaskManager::create ( const std::string &  TaskName,
bool  ReturnIfExists = false 
) [virtual]

Creates Task with given name.

Implements gpucalc::TaskManager.

Definition at line 51 of file simple_task_manager.cpp.

00052  {
00053   SimpleTaskMap::iterator i = mSimpleTaskMap.find(TaskName);
00054   if (i != mSimpleTaskMap.end())
00055   {
00056    if (ReturnIfExists)
00057    {
00058     return i->second;
00059    }
00060    else
00061    {
00062     Except<ERR_DUPLICATE_ITEM>(this, "Simple Task \"" + TaskName + "\" already exists.", "SimpleTaskManager::createTask()", __FILE__, __LINE__);
00063     return 0;
00064    }
00065   }
00066   else
00067   {
00068    SimpleTask * task = new SimpleTask(TaskName);
00069    addToContainer(task, TaskName, mSimpleTaskMap);
00070    return task;
00071   }
00072  }

void gpucalc::SimpleTaskManager::destroy ( Task task  )  [virtual]

Destroy Task.

Depends on Task type this method can destroy related kernels and other members of Task class.

Implements gpucalc::TaskManager.

Definition at line 90 of file simple_task_manager.cpp.

00091  {
00092   if (!removeFromContainer(task->getObjectName(), mSimpleTaskMap))
00093   {
00094    Warning<ERR_ITEM_NOT_FOUND>(this, "SimpleTask \"" + task->getObjectName() + "\" cannot de found!!! Destroying anyway.",
00095     "SimpleTaskManager::deleteTask()", __FILE__, __LINE__);
00096    delete task;
00097   }
00098  }

Task * gpucalc::SimpleTaskManager::find ( const std::string &  TaskName  )  [virtual]

Implements gpucalc::TaskManager.

Definition at line 75 of file simple_task_manager.cpp.

00076  {
00077   SimpleTaskMap::iterator i = mSimpleTaskMap.find(TaskName);
00078   if (i != mSimpleTaskMap.end())
00079   {
00080    return i->second;
00081   }
00082   else
00083   {
00084    Except<ERR_ITEM_NOT_FOUND>(this, "Simple Task \"" + TaskName + "\" cannot be found.", "Simpletaskmanager::find()", __FILE__, __LINE__);
00085    return 0;
00086   }
00087  }

const std::string& gpucalc::Object::getClassName (  )  const [inline, inherited]

Returns name of class of our object.

Definition at line 92 of file object.h.

00093    {
00094     return mClassName;
00095    }

const std::string& gpucalc::Object::getObjectName (  )  const [inline, inherited]

Returns name of our object.

Definition at line 101 of file object.h.

00102    {
00103     return mObjectName;
00104    }

void gpucalc::Object::getSpecificParameter ( const std::string &  ParameterName,
void *  ParameterValue 
) [inline, inherited]

Method for obtaining some specific parameters, such as texture specific params, and so on.

Parameters:
ParameterName - name of parameter, usually it similar to specific method of some object (for example, GLTextureID)
ParameterValue - contain value of named parameter, it must be allocated and have sufficient size.
Todo:
Think for better realization.

Definition at line 128 of file object.h.

00129    {
00130     SpecificParametersMap::iterator i = mSpecificParameters.find(ParameterName);
00131     if (i != mSpecificParameters.end())
00132     {
00133      i->second.copyValue(ParameterValue);
00134     }
00135     else
00136     {
00137      Except<ERR_ITEM_NOT_FOUND>(this, "Parameter \"" + ParameterName + "\" does not exists.", "Object::getSpecificParameter()", __FILE__, __LINE__);
00138     }
00139    }

bool gpucalc::Object::isLocked (  )  const [inline, inherited]

returns state of object.

If object is locked then we cannot change some state of it, because object is used in computation. If object is unlocked then we can change some state of it, object is not in computation.

Definition at line 113 of file object.h.

00114    {
00115     return mIsLocked;
00116    }

void gpucalc::Object::lock (  )  [inline, protected, inherited]

Definition at line 265 of file object.h.

00266    {
00267     mIsLocked = true;
00268    }

void gpucalc::Object::unlock (  )  [inline, protected, inherited]

Definition at line 271 of file object.h.

00272    {
00273     mIsLocked = false;
00274    }


Member Data Documentation

Definition at line 74 of file simple_task_manager.h.


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

Generated on Thu Mar 5 22:36:46 2009 for gpucalc by  doxygen 1.5.6