NVIDIA(R) PhysX(R) SDK 3.4 API Reference: physx::PxBaseTask Class Reference

From NVIDIA PhysX API

physx::PxBaseTask Class Reference

Base class of all task types. More...

#include <PxTask.h>

Inheritance diagram for physx::PxBaseTask:
Collaboration diagram for physx::PxBaseTask:

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 PxTaskManager * getTaskManager () 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.
PxTaskManager * mTm
 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