VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends
vtkExecutionScheduler Class Reference

Scheduling execution with thread/computing resources distributing. More...

#include <vtkExecutionScheduler.h>

Inheritance diagram for vtkExecutionScheduler:
Inheritance graph
[legend]
Collaboration diagram for vtkExecutionScheduler:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtkObject Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkExecutionSchedulerNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
void Schedule (vtkExecutiveCollection *execs, vtkInformation *info)
void SchedulePropagate (vtkExecutiveCollection *execs, vtkInformation *info)
void WaitUntilDone (vtkExecutiveCollection *execs)
void WaitUntilReleased (vtkExecutiveCollection *execs)
void WaitUntilAllDone ()
void WaitForTaskDone (vtkExecutive *exec)
void WaitForInputsReleased (vtkExecutive *exec)
vtkThreadMessagerGetTaskDoneMessager (vtkExecutive *exec)
vtkThreadMessagerGetInputsReleasedMessager (vtkExecutive *exec)
vtkMutexLockGetInputsReleasedLock (vtkExecutive *exec)
void ReleaseResources (vtkExecutive *exec)
void ReacquireResources (vtkExecutive *exec)
void RescheduleNetwork (vtkExecutive *sink)
void RescheduleFrom (vtkExecutive *sink, vtkComputingResources *resources)

Static Public Member Functions

static vtkExecutionSchedulerNew ()
static int IsTypeOf (const char *type)
static vtkExecutionSchedulerSafeDownCast (vtkObjectBase *o)
static vtkExecutionSchedulerGetGlobalScheduler ()
static vtkInformationIntegerKeyTASK_PRIORITY ()

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkExecutionScheduler ()
 ~vtkExecutionScheduler ()

Protected Attributes

vtkComputingResourcesResources
vtkThreadMessagerScheduleMessager
vtkThreadMessagerResourceMessager
vtkMutexLockScheduleLock
vtkMultiThreaderScheduleThreader
int ScheduleThreadId
implementation *const Implementation

Friends

class implementation
void * vtkExecutionScheduler_ScheduleThread (void *data)
void * vtkExecutionScheduler_ExecuteThread (void *data)
class vtkExecutionSchedulerManager
static void ClassInitialize ()
static void ClassFinalize ()

Detailed Description

Scheduling execution with thread/computing resources distributing.

This is a class for balancing the computing resources throughout the network

See also:
vtkComputingResources vtkThreadedStreamingPipeline
Events:
vtkCommand::UpdateEvent

Definition at line 60 of file vtkExecutionScheduler.h.


Member Typedef Documentation

Reimplemented from vtkObject.

Definition at line 64 of file vtkExecutionScheduler.h.


Constructor & Destructor Documentation


Member Function Documentation

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkObject.

static int vtkExecutionScheduler::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

virtual int vtkExecutionScheduler::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented from vtkObject.

virtual vtkObjectBase* vtkExecutionScheduler::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkObject.

Reimplemented from vtkObject.

void vtkExecutionScheduler::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

Return the global instance of the scheduler

Key to store the priority of a task

Put the current set of executives (modules) to the be scheduled given its dependency graph which will be used to compute the set topological orders

Put the current set of executives (modules) to the be scheduled given its dependency graph which will be used to compute the set topological orders. Then wait for their execution to be complete

Wait until the current set of executives (modules) have finished executing

Wait until the current set of executives (modules) have their inputs released

Wait for all tasks to be done

Wait for a task that is on the scheduling queue to be done. If the task is not there, this will return immediately. If the exec is NULL, any task that is done will trigger this the return

Similar to WaitForTaskDone but return whenever input connections of a task are released instead of done computing. But exec cannot be NULL.

Return the thread messager reserved for the given exec to notify when it is done

Return the thread messager reserved for the given exec to notify when it releases its inputs

Return the mutex lock reserved for the given exec to notify when it releases its inputs

Release the resources that are being used by the given exec

Re-acquire the resource released earlier by ReleaseResource

Redistribute the thread resources over the network from a sink with a maximum resource

Redistribute the thread resources from a sink given a certain amount of resource

static void vtkExecutionScheduler::ClassInitialize ( ) [static, protected]

and clean up of the vtkExecutionScheduler singleton.

static void vtkExecutionScheduler::ClassFinalize ( ) [static, protected]

and clean up of the vtkExecutionScheduler singleton.


Friends And Related Function Documentation

friend class implementation [friend]

Definition at line 143 of file vtkExecutionScheduler.h.

friend class vtkExecutionSchedulerManager [friend]

and clean up of the vtkExecutionScheduler singleton.

Definition at line 159 of file vtkExecutionScheduler.h.

void* vtkExecutionScheduler_ScheduleThread ( void *  data) [friend]

The scheduling thread that is responsible for queueing up module execution in the right order

void* vtkExecutionScheduler_ExecuteThread ( void *  data) [friend]

Execute thread function that is responsible for forking process for each module


Member Data Documentation

Definition at line 133 of file vtkExecutionScheduler.h.

Definition at line 134 of file vtkExecutionScheduler.h.

Definition at line 135 of file vtkExecutionScheduler.h.

Definition at line 136 of file vtkExecutionScheduler.h.

Definition at line 137 of file vtkExecutionScheduler.h.

Definition at line 138 of file vtkExecutionScheduler.h.

Definition at line 141 of file vtkExecutionScheduler.h.


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