25 #ifndef vtkADIOSReader_h
26 #define vtkADIOSReader_h
35 #include "vtkSetGet.h"
40 #include "vtkIOADIOSModule.h"
79 vtkSetStringMacro(FileName);
103 vtkSetStringMacro(ReadMethodArguments);
185 std::map<std::pair<int, size_t>,
186 std::pair<int, vtkSmartPointer<vtkObject> > >
216 template<
typename TObjectFun,
typename TObjectData,
typename TReturn>
219 template<
typename TObjectFun,
typename TObjectData,
typename TReturn,
220 typename TArg1Fun,
typename TArg1Data>
222 TReturn (TObjectFun::*)(TArg1Fun), TArg1Data);
224 template<
typename TObjectFun,
typename TObjectData,
typename TReturn,
225 typename TArg1Fun,
typename TArg1Data,
226 typename TArg2Fun,
typename TArg2Data>
228 TReturn (TObjectFun::*)(TArg1Fun, TArg2Fun),
229 TArg1Data, TArg2Data);
231 template<
typename TObjectFun,
typename TObjectData,
typename TReturn,
232 typename TArg1Fun,
typename TArg1Data,
233 typename TArg2Fun,
typename TArg2Data,
234 typename TArg3Fun,
typename TArg3Data>
236 TReturn (TObjectFun::*)(TArg1Fun, TArg2Fun, TArg3Fun),
237 TArg1Data, TArg2Data, TArg3Data);
267 #define DECLARE_EXPLICIT(T) \
268 template<> T* vtkADIOSReader::ReadObject<T>(const std::string& path, \
273 #undef DECLARE_EXPLICIT
A directory tree structure holding ADIOS data.
void ReadObject(const vtkADIOSDirTree *dir, vtkPolyData *data, int blockId)
void ReadObject(const ADIOS::VarInfo *info, const vtkADIOSDirTree *subDir, vtkDataArray *data, int blockId)
Initialize a pre-allocated object with it's appropriate scalars.
T * ReadObject(const std::string &path, int blockId)
Create a VTK object with it's scalar values and allocate any arrays, and schedule them for reading.
virtual int RequestData(vtkInformation *request, vtkInformationVector **input, vtkInformationVector *output)
void ReadObject(const vtkADIOSDirTree *dir, vtkDataSet *data, int blockId)
void SetReadMethodDataSpaces()
std::vector< std::map< std::string, size_t > > BlockStepIndexIdMap
void WaitForReads(void)
Wait for all scheduled array reads to finish.
virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
The main interface which triggers the reader to start.
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **input, vtkInformationVector *output)
void SetController(vtkMultiProcessController *)
Set the MPI controller.
std::vector< std::vector< std::vector< int > > > BlockStepIndex
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::map< double, size_t > TimeStepsIndex
std::map< std::pair< int, size_t >, std::pair< int, vtkSmartPointer< vtkObject > > > ObjectCache
void AddPostReadOperation(TObjectData *, TReturn(TObjectFun::*)(TArg1Fun, TArg2Fun), TArg1Data, TArg2Data)
void ReadObject(const vtkADIOSDirTree *dir, vtkCellArray *data, int blockId)
int FillOutputPortInformation(int, vtkInformation *)
Fill the output port information objects for this algorithm.
std::queue< BaseFunctor * > PostReadOperations
void SetReadMethodBPAggregate()
int CanReadFile(const char *name)
Test wether or not a given file should even be attempted for use with this reader.
bool OpenAndReadMetadata(void)
Open an ADIOS file and build the directory structure.
void AddPostReadOperation(TObjectData *, TReturn(TObjectFun::*)(TArg1Fun), TArg1Data)
char * ReadMethodArguments
virtual ~vtkADIOSReader()
void ReadObject(const vtkADIOSDirTree *dir, vtkFieldData *data, int blockId)
void SetReadMethodFlexPath()
void ReadObject(const vtkADIOSDirTree *dir, vtkDataSetAttributes *data, int blockId)
int RequestNumberOfPieces
void ReadObject(const vtkADIOSDirTree *dir, vtkImageData *data, int blockId)
std::vector< double > TimeSteps
virtual int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **input, vtkInformationVector *output)
This is called by the superclass.
vtkMultiProcessController * Controller
static vtkADIOSReader * New(void)
void SetReadMethodDIMES()
void AddPostReadOperation(TObjectData *, TReturn(TObjectFun::*)())
void AddPostReadOperation(TObjectData *, TReturn(TObjectFun::*)(TArg1Fun, TArg2Fun, TArg3Fun), TArg1Data, TArg2Data, TArg3Data)
void ReadObject(const vtkADIOSDirTree *dir, vtkUnstructuredGrid *data, int blockId)
object to represent cell connectivity
abstract superclass for arrays of numeric data
Superclass for algorithms that produce only data object as output.
general representation of visualization data
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
represent and manipulate fields of data
topologically and geometrically regular array of data
a simple class to control print indentation
Multiprocessing communication superclass.
concrete dataset represents vertices, lines, polygons, and triangle strips
dataset represents arbitrary combinations of all possible cell types
@ ReadMethod_BP_AGGREGATE
#define DECLARE_EXPLICIT(T)
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.