Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkCachedStreamingDemandDrivenPipeline.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkCachedStreamingDemandDrivenPipeline.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00030 #ifndef __vtkCachedStreamingDemandDrivenPipeline_h
00031 #define __vtkCachedStreamingDemandDrivenPipeline_h
00032 
00033 #include "vtkStreamingDemandDrivenPipeline.h"
00034 
00035 class vtkInformationIntegerKey;
00036 class vtkInformationIntegerVectorKey;
00037 class vtkCachedStreamingDemandDrivenPipelineInternals;
00038 
00039 class VTK_FILTERING_EXPORT vtkCachedStreamingDemandDrivenPipeline : 
00040   public vtkStreamingDemandDrivenPipeline
00041 {
00042 public:
00043   static vtkCachedStreamingDemandDrivenPipeline* New();
00044   vtkTypeRevisionMacro(vtkCachedStreamingDemandDrivenPipeline,
00045                        vtkStreamingDemandDrivenPipeline);
00046   void PrintSelf(ostream& os, vtkIndent indent);
00047 
00049 
00051   virtual int Update();
00052   virtual int Update(int port);
00053   virtual int Update(vtkAlgorithm* algorithm);
00054   virtual int Update(vtkAlgorithm* algorithm, int port);
00056 
00058 
00060   void SetCacheSize(int size);
00061   vtkGetMacro(CacheSize, int);
00063 
00064 protected:
00065   vtkCachedStreamingDemandDrivenPipeline();
00066   ~vtkCachedStreamingDemandDrivenPipeline();
00067 
00068   virtual int NeedToExecuteData(int outputPort);
00069   virtual int ExecuteData(int outputPort);
00070   
00071   int CacheSize;
00072   
00073   vtkDataObject **Data;
00074   unsigned long *Times;
00075 
00076 private:
00077   vtkCachedStreamingDemandDrivenPipelineInternals* CachedStreamingDemandDrivenInternal;
00078 private:
00079   vtkCachedStreamingDemandDrivenPipeline(const vtkCachedStreamingDemandDrivenPipeline&);  // Not implemented.
00080   void operator=(const vtkCachedStreamingDemandDrivenPipeline&);  // Not implemented.
00081 };
00082 
00083 #endif