Main Page   Class Hierarchy   Alphabetical List   Compound List   Compound 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)


Member Function Documentation

void vtkAsynchronousBuffer::BlockingUpdate  
 

Methods required by the vtkPort superclass.

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.

virtual unsigned char vtkAsynchronousBuffer::GetFinished   [virtual]
 

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

void vtkAsynchronousBuffer::InternalUpdate vtkDataObject   output
 

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

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.

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.

vtkAsynchronousBuffer* vtkAsynchronousBuffer::New   [static]
 

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

Reimplemented from vtkDataSetSource.

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

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.

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.


The documentation for this class was generated from the following file:
Generated on Tue Mar 19 13:23:43 2002 for VTK by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002