VTK
dox/Filters/Core/vtkStreamerBase.h
Go to the documentation of this file.
00001 // -*- c++ -*-
00002 /*=========================================================================
00003 
00004   Program:   Visualization Toolkit
00005   Module:    vtkTemporalStatistics.h
00006 
00007   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00016 
00032 #ifndef _vtkStreamerBase_h
00033 #define _vtkStreamerBase_h
00034 
00035 #include "vtkFiltersCoreModule.h" // For export macro
00036 #include "vtkAlgorithm.h"
00037 
00038 class VTKFILTERSCORE_EXPORT vtkStreamerBase : public vtkAlgorithm
00039 {
00040 public:
00041   vtkTypeMacro(vtkStreamerBase, vtkAlgorithm);
00042   virtual void PrintSelf(ostream &os, vtkIndent indent);
00043 
00045 
00046   virtual int ProcessRequest(vtkInformation*,
00047                              vtkInformationVector**,
00048                              vtkInformationVector*);
00050 
00051 protected:
00052   vtkStreamerBase();
00053   ~vtkStreamerBase();
00054 
00055   virtual int RequestInformation(vtkInformation*,
00056                                  vtkInformationVector**,
00057                                  vtkInformationVector*)
00058   {
00059     return 1;
00060   }
00061 
00063 
00065   virtual int RequestUpdateExtent(vtkInformation*,
00066                                   vtkInformationVector**,
00067                                   vtkInformationVector*) = 0;
00069 
00070   virtual int RequestData(vtkInformation *request,
00071                           vtkInformationVector **inputVector,
00072                           vtkInformationVector *outputVector);
00073 
00074   // This method is called during each execution pass. Subclasses
00075   // should implement this to do actual work.
00076   virtual int ExecutePass(vtkInformationVector **inputVector,
00077                           vtkInformationVector *outputVector) = 0;
00078 
00079   // This method is called after streaming is completed. Subclasses
00080   // can override this method to perform cleanup.
00081   virtual int PostExecute(vtkInformationVector **,
00082                           vtkInformationVector *)
00083   {
00084     return 1;
00085   }
00086 
00087   unsigned int NumberOfPasses;
00088   unsigned int CurrentIndex;
00089 
00090 private:
00091   vtkStreamerBase(const vtkStreamerBase &); // Not implemented.
00092   void operator=(const vtkStreamerBase &);        // Not implemented.
00093 
00094 };
00095 
00096 #endif //_vtkStreamerBase_h