VTK
dox/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkCachedStreamingDemandDrivenPipeline.h
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 =========================================================================*/
00020 #ifndef __vtkCachedStreamingDemandDrivenPipeline_h
00021 #define __vtkCachedStreamingDemandDrivenPipeline_h
00022 
00023 #include "vtkCommonExecutionModelModule.h" // For export macro
00024 #include "vtkStreamingDemandDrivenPipeline.h"
00025 
00026 class vtkInformationIntegerKey;
00027 class vtkInformationIntegerVectorKey;
00028 class vtkCachedStreamingDemandDrivenPipelineInternals;
00029 
00030 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkCachedStreamingDemandDrivenPipeline :
00031   public vtkStreamingDemandDrivenPipeline
00032 {
00033 public:
00034   static vtkCachedStreamingDemandDrivenPipeline* New();
00035   vtkTypeMacro(vtkCachedStreamingDemandDrivenPipeline,
00036                        vtkStreamingDemandDrivenPipeline);
00037   void PrintSelf(ostream& os, vtkIndent indent);
00038 
00040 
00041   virtual int Update();
00042   virtual int Update(int port);
00044 
00046 
00048   void SetCacheSize(int size);
00049   vtkGetMacro(CacheSize, int);
00051 
00052 protected:
00053   vtkCachedStreamingDemandDrivenPipeline();
00054   ~vtkCachedStreamingDemandDrivenPipeline();
00055 
00056   virtual int NeedToExecuteData(int outputPort,
00057                                 vtkInformationVector** inInfoVec,
00058                                 vtkInformationVector* outInfoVec);
00059   virtual int ExecuteData(vtkInformation* request,
00060                           vtkInformationVector** inInfoVec,
00061                           vtkInformationVector* outInfoVec);
00062 
00063   int CacheSize;
00064 
00065   vtkDataObject **Data;
00066   unsigned long *Times;
00067 
00068 private:
00069   vtkCachedStreamingDemandDrivenPipelineInternals* CachedStreamingDemandDrivenInternal;
00070 private:
00071   vtkCachedStreamingDemandDrivenPipeline(const vtkCachedStreamingDemandDrivenPipeline&);  // Not implemented.
00072   void operator=(const vtkCachedStreamingDemandDrivenPipeline&);  // Not implemented.
00073 };
00074 
00075 #endif