physx::PxBaseTask Class Reference

Base class of all task types. More...

#include <PxTask.h>

Inheritance diagram for physx::PxBaseTask:

Inheritance graph
physx::PxLightCpuTaskphysx::PxTaskphysx::PxGpuTask
[legend]
Collaboration diagram for physx::PxBaseTask:

Collaboration graph
physx::PxTaskManager
[legend]

List of all members.

Public Member Functions

 PxBaseTask ()
virtual ~PxBaseTask ()
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 int32_t getReference () const =0
 Implemented by derived implementation classes.
virtual void release ()=0
 Implemented by derived implementation classes.
PX_INLINE void runProfiled (uint32_t threadId=0)
 Execute user run method with wrapping profiling events.
PX_INLINE void setProfileStat (uint16_t stat)
 Specify stop event statistic.
PX_INLINE PxTaskManagergetTaskManager () const
 Return PxTaskManager to which this task was submitted.

Protected Attributes

uint16_t mEventID
 Registered profile event ID.
uint16_t mProfileStat
 Profiling statistic.
PxTaskManagermTm
 Owning PxTaskManager instance.

Friends

class PxTaskMgr


Detailed Description

Base class of all task types.

PxBaseTask defines a runnable reference counted task with built-in profiling.


Constructor & Destructor Documentation

physx::PxBaseTask::PxBaseTask (  )  [inline]

virtual physx::PxBaseTask::~PxBaseTask (  )  [inline, virtual]


Member Function Documentation

virtual void physx::PxBaseTask::addReference (  )  [pure virtual]

Implemented by derived implementation classes.

Implemented in physx::PxTask, and physx::PxLightCpuTask.

Referenced by physx::PxLightCpuTask::setContinuation().

virtual const char* physx::PxBaseTask::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 int32_t physx::PxBaseTask::getReference (  )  const [pure virtual]

Implemented by derived implementation classes.

Implemented in physx::PxTask, and physx::PxLightCpuTask.

PX_INLINE PxTaskManager* physx::PxBaseTask::getTaskManager (  )  const [inline]

Return PxTaskManager to which this task was submitted.

Note, can return NULL if task was not submitted, or has been completed.

References mTm.

Referenced by physx::PxLightCpuTask::setContinuation().

virtual void physx::PxBaseTask::release (  )  [pure virtual]

Implemented by derived implementation classes.

A task may assume in its release() method that the task system no longer holds references to it - so it may safely run its destructor, recycle itself, etc. provided no additional user references to the task exist

Implemented in physx::PxGpuTask, physx::PxTask, and physx::PxLightCpuTask.

virtual void physx::PxBaseTask::removeReference (  )  [pure virtual]

Implemented by derived implementation classes.

Implemented in physx::PxTask, and physx::PxLightCpuTask.

Referenced by physx::PxLightCpuTask::release(), and physx::PxGpuTask::release().

virtual void physx::PxBaseTask::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.

Referenced by runProfiled().

PX_INLINE void physx::PxBaseTask::runProfiled ( uint32_t  threadId = 0  )  [inline]

Execute user run method with wrapping profiling events.

Optional entry point for use by CpuDispatchers.

Parameters:
[in] threadId The threadId of the thread that executed the task.

References mTm, and run().

PX_INLINE void physx::PxBaseTask::setProfileStat ( uint16_t  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

References mProfileStat.


Friends And Related Function Documentation

friend class PxTaskMgr [friend]

Reimplemented in physx::PxTask, and physx::PxLightCpuTask.


Member Data Documentation

uint16_t physx::PxBaseTask::mEventID [protected]

Registered profile event ID.

uint16_t physx::PxBaseTask::mProfileStat [protected]

Profiling statistic.

Referenced by setProfileStat(), and physx::PxTask::submitted().


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


Copyright © 2008-2016 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com