pxtask::BaseTask Class Reference
Base class of all task types. More...
#include <PxTask.h>
![Inheritance graph](classpxtask_1_1BaseTask__inherit__graph.png)
![Collaboration graph](classpxtask_1_1BaseTask__coll__graph.png)
Public Member Functions | |
BaseTask () | |
virtual | ~BaseTask () |
virtual void | run ()=0 |
The user-implemented run method where the task's work should be performed. | |
virtual const char * | getName () const =0 |
Return a user-provided task name for profiling purposes. | |
virtual void | addReference ()=0 |
Implemented by derived implementation classes. | |
virtual void | removeReference ()=0 |
Implemented by derived implementation classes. | |
virtual PxI32 | getReference () const =0 |
Implemented by derived implementation classes. | |
virtual void | release ()=0 |
Implemented by derived implementation classes. | |
PX_INLINE void | runProfiled () |
Execute user run method with wrapping profiling events. | |
PX_INLINE void | setProfileStat (PxU16 stat) |
Specify stop event statistic. | |
PX_INLINE TaskManager * | getTaskManager () const |
Return TaskManager to which this task was submitted. | |
Protected Attributes | |
PxU16 | mEventID |
Registered profile event ID. | |
PxU16 | mProfileStat |
Profiling statistic. | |
TaskManager * | mTm |
Owning TaskManager instance. | |
Friends | |
class | TaskMgr |
Detailed Description
Base class of all task types.BaseTask defines a runnable reference counted task with built-in profiling.
Constructor & Destructor Documentation
pxtask::BaseTask::BaseTask | ( | ) | [inline] |
virtual pxtask::BaseTask::~BaseTask | ( | ) | [inline, virtual] |
Member Function Documentation
virtual void pxtask::BaseTask::addReference | ( | ) | [pure virtual] |
Implemented by derived implementation classes.
Implemented in pxtask::Task, and pxtask::LightCpuTask.
Referenced by pxtask::LightCpuTask::setContinuation().
virtual const char* pxtask::BaseTask::getName | ( | ) | const [pure virtual] |
Return a user-provided task name for profiling purposes.
It does not have to be unique, but unique names are helpful.
- Returns:
- The name of this task
virtual PxI32 pxtask::BaseTask::getReference | ( | ) | const [pure virtual] |
Implemented by derived implementation classes.
Implemented in pxtask::Task, and pxtask::LightCpuTask.
PX_INLINE TaskManager* pxtask::BaseTask::getTaskManager | ( | ) | const [inline] |
Return TaskManager to which this task was submitted.
Note, can return NULL if task was not submitted, or has been completed.
virtual void pxtask::BaseTask::release | ( | ) | [pure virtual] |
Implemented by derived implementation classes.
Implemented in pxtask::GpuTask, pxtask::Task, and pxtask::LightCpuTask.
virtual void pxtask::BaseTask::removeReference | ( | ) | [pure virtual] |
Implemented by derived implementation classes.
Implemented in pxtask::SpuTask, pxtask::Task, and pxtask::LightCpuTask.
Referenced by pxtask::GpuTask::release().
virtual void pxtask::BaseTask::run | ( | ) | [pure virtual] |
The user-implemented run method where the task's work should be performed.
run() methods must be thread safe, stack friendly (no alloca, etc), and must never block.
Implemented in pxtask::SpuTask.
PX_INLINE void pxtask::BaseTask::runProfiled | ( | ) | [inline] |
Execute user run method with wrapping profiling events.
Optional entry point for use by CpuDispatchers.
PX_INLINE void pxtask::BaseTask::setProfileStat | ( | PxU16 | stat | ) | [inline] |
Specify stop event statistic.
If called before or while the task is executing, the given value will appear in the task's event bar in the profile viewer
- Parameters:
-
[in] stat The stat to signal when the task is finished
Friends And Related Function Documentation
friend class TaskMgr [friend] |
Reimplemented in pxtask::Task, and pxtask::LightCpuTask.
Member Data Documentation
PxU16 pxtask::BaseTask::mEventID [protected] |
Registered profile event ID.
PxU16 pxtask::BaseTask::mProfileStat [protected] |
Profiling statistic.
TaskManager* pxtask::BaseTask::mTm [protected] |
Owning TaskManager instance.
The documentation for this class was generated from the following file:
Copyright © 2008-2012 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com