Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkAsynchronousBuffer Class Reference

For pipeline execution in multiple threads. More...

#include <vtkAsynchronousBuffer.h>

Inheritance diagram for vtkAsynchronousBuffer:

Inheritance graph
[legend]
Collaboration diagram for vtkAsynchronousBuffer:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetBlocking (int)
virtual int GetBlocking ()
virtual void BlockingOn ()
virtual void BlockingOff ()
void InternalUpdate (vtkDataObject *output)
void BlockingUpdate ()
void NonblockingUpdate ()
void PromoteData ()
int TestForFinished ()
void WaitForFinished ()
void UpdateInformation ()
virtual unsigned char GetFinished ()

Static Public Methods

int IsTypeOf (const char *type)
vtkAsynchronousBuffer * SafeDownCast (vtkObject *o)
vtkAsynchronousBuffer * New ()

Public Attributes

unsigned char Finished
unsigned char OutputConsumed

Protected Methods

 vtkAsynchronousBuffer ()
 ~vtkAsynchronousBuffer ()
 vtkAsynchronousBuffer (const vtkAsynchronousBuffer &)
void operator= (const vtkAsynchronousBuffer &)
void BlockingUpdateInformation ()
void NonblockingUpdateInformation ()
void Execute ()

Protected Attributes

int Blocking
vtkMultiThreaderThreader
int ThreadId

Detailed Description

For pipeline execution in multiple threads.

Date:
2000/12/10 20:08:22
Revision:
1.12

vtkAsynchronousBuffer will allow a non-blocking update of a pipeline. When Blocking is off, the a call to Update returns immediately, and the Update continues in another thread. An abort mechanism has not been implemented. WARNING: While the buffer is updating, the upstream pipeline cannot be modified or caused to update by the main thread. WARNING: This object is currently in development, and its API may change in the future (or the class may go away completely).

See also:
vtkMutexLock vtkMultiThreader
Examples:
vtkAsynchronousBuffer (examples)

Definition at line 70 of file vtkAsynchronousBuffer.h.


Constructor & Destructor Documentation

vtkAsynchronousBuffer::vtkAsynchronousBuffer   [protected]
 

vtkAsynchronousBuffer::~vtkAsynchronousBuffer   [protected]
 

vtkAsynchronousBuffer::vtkAsynchronousBuffer const vtkAsynchronousBuffer &    [inline, protected]
 

Definition at line 115 of file vtkAsynchronousBuffer.h.


Member Function Documentation

virtual const char* vtkAsynchronousBuffer::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSetToDataSetFilter.

int vtkAsynchronousBuffer::IsTypeOf const char *    type [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 vtkDataSetToDataSetFilter.

virtual int vtkAsynchronousBuffer::IsA const char *    type [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 vtkDataSetToDataSetFilter.

vtkAsynchronousBuffer* vtkAsynchronousBuffer::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSetToDataSetFilter.

void vtkAsynchronousBuffer::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 vtkSource.

vtkAsynchronousBuffer* vtkAsynchronousBuffer::New   [static]
 

Instantiate object with no start, end, or progress methods.

Reimplemented from vtkDataSetSource.

virtual void vtkAsynchronousBuffer::SetBlocking int    [virtual]
 

A flag to change the behavior of the standard "Update" call. When blocking is off, then this method starts an update on the input, and returns immediately. If an additional call is made before an update is finished, it returns with no effect. If it is called after a previous update has completed, it swaps the buffers and checks to see if another update needs to occur.

virtual int vtkAsynchronousBuffer::GetBlocking   [virtual]
 

virtual void vtkAsynchronousBuffer::BlockingOn   [virtual]
 

virtual void vtkAsynchronousBuffer::BlockingOff   [virtual]
 

void vtkAsynchronousBuffer::InternalUpdate vtkDataObject   output
 

The behavior of this method depends on the "Blocking" flag.

void vtkAsynchronousBuffer::BlockingUpdate  
 

Methods required by the vtkPort superclass.

void vtkAsynchronousBuffer::NonblockingUpdate  
 

void vtkAsynchronousBuffer::PromoteData  
 

int vtkAsynchronousBuffer::TestForFinished  
 

void vtkAsynchronousBuffer::WaitForFinished  
 

void vtkAsynchronousBuffer::UpdateInformation   [virtual]
 

We need a special UpdateInformation method because the PipelineMTime is messed up by the asynchronous nature of the update. The UpdateTime of a down stream filter can not be compared to the modifiedTime of an up stream object.

Reimplemented from vtkSource.

virtual unsigned char vtkAsynchronousBuffer::GetFinished   [virtual]
 

If this value is 1 then, the buffer is in the middle of an asynchronous update.

void vtkAsynchronousBuffer::operator= const vtkAsynchronousBuffer &    [inline, protected]
 

Definition at line 116 of file vtkAsynchronousBuffer.h.

void vtkAsynchronousBuffer::BlockingUpdateInformation   [protected]
 

void vtkAsynchronousBuffer::NonblockingUpdateInformation   [protected]
 

void vtkAsynchronousBuffer::Execute   [protected, virtual]
 

Reimplemented from vtkSource.


Member Data Documentation

unsigned char vtkAsynchronousBuffer::Finished
 

Definition at line 109 of file vtkAsynchronousBuffer.h.

unsigned char vtkAsynchronousBuffer::OutputConsumed
 

Definition at line 110 of file vtkAsynchronousBuffer.h.

int vtkAsynchronousBuffer::Blocking [protected]
 

Definition at line 118 of file vtkAsynchronousBuffer.h.

vtkMultiThreader* vtkAsynchronousBuffer::Threader [protected]
 

Definition at line 119 of file vtkAsynchronousBuffer.h.

int vtkAsynchronousBuffer::ThreadId [protected]
 

Definition at line 120 of file vtkAsynchronousBuffer.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:46:29 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001