00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030 #ifndef __vtkPVReaderModule_h
00031 #define __vtkPVReaderModule_h
00032
00033 #include "vtkPVSource.h"
00034
00035 class vtkPVFileEntry;
00036
00037 template <class value>
00038 class vtkVector;
00039 template <class value>
00040 class vtkVectorIterator;
00041
00042
00043 class VTK_EXPORT vtkPVReaderModule : public vtkPVSource
00044 {
00045 public:
00046 static vtkPVReaderModule* New();
00047 vtkTypeRevisionMacro(vtkPVReaderModule, vtkPVSource);
00048 void PrintSelf(ostream& os, vtkIndent indent);
00049
00052 virtual void CreateProperties();
00053
00058 virtual int CanReadFile(const char* fname);
00059
00061
00067 virtual int Initialize(const char* fname, vtkPVReaderModule*& newModule);
00068 virtual int Finalize (const char* fname);
00069 virtual int ReadFileInformation(const char* fname);
00071
00075 void AddExtension(const char*);
00076
00078 vtkIdType GetNumberOfExtensions();
00079
00081 const char* GetExtension(vtkIdType i);
00082
00084 const char* RemovePath(const char* fname);
00085
00087
00100 vtkSetMacro(AcceptAfterRead, int);
00101 vtkGetMacro(AcceptAfterRead, int);
00103
00105
00106 vtkGetObjectMacro(FileEntry, vtkPVFileEntry);
00108
00111 virtual void SaveState(ofstream *file);
00112
00115 void AddPVFileEntry(vtkPVFileEntry *pvw);
00116
00122 virtual int GetNumberOfTimeSteps();
00123
00126 virtual void SetRequestedTimeStep(int);
00127
00129 vtkPVWidget* GetTimeStepWidget();
00130
00131 protected:
00132 vtkPVReaderModule();
00133 ~vtkPVReaderModule();
00134
00135 const char* ExtractExtension(const char* fname);
00136
00137 vtkPVFileEntry* FileEntry;
00138 int AcceptAfterRead;
00139
00140 virtual int FinalizeInternal(const char* fname,
00141 int accept);
00142
00143 void SetReaderFileName(const char* fname);
00144
00145
00146 vtkVector<const char*>* Extensions;
00147 vtkVectorIterator<const char*>* Iterator;
00148
00149
00155 int CloneAndInitialize(int makeCurrent, vtkPVReaderModule*& clone);
00156
00157 int PackFileEntry;
00158 int AddFileEntry;
00159
00160 private:
00161 vtkPVReaderModule(const vtkPVReaderModule&);
00162 void operator=(const vtkPVReaderModule&);
00163 };
00164
00165 #endif