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_FORCE_INLINE PxTaskManagergetTaskManager () const
 Return PxTaskManager to which this task was submitted.
PX_FORCE_INLINE void setContextId (PxU64 id)
PX_FORCE_INLINE PxU64 getContextId () const

Protected Attributes

PxU64 mContextID
 Context ID for profiler interface.
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().

PX_FORCE_INLINE PxU64 physx::PxBaseTask::getContextId (  )  const [inline]

References mContextID.

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_FORCE_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.

PX_FORCE_INLINE void physx::PxBaseTask::setContextId ( PxU64  id  )  [inline]

References mContextID.


Friends And Related Function Documentation

friend class PxTaskMgr [friend]

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


Member Data Documentation

Context ID for profiler interface.

Referenced by getContextId(), and setContextId().


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


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