VTK  9.3.20240327
VTXSchemaManager.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
3 
4 /*
5  * VTXSchemaManager.h : reusable class that manages a reader that
6  * is a derived type of VTXSchema
7  *
8  * Created on: May 31, 2019
9  * Author: William F Godoy godoywf@ornl.gov
10  */
11 
12 #ifndef VTK_IO_ADIOS2_VTX_VTXSchemaManager_H_
13 #define VTK_IO_ADIOS2_VTX_VTXSchemaManager_H_
14 
15 #include <memory>
16 #include <set>
17 #include <string>
18 
19 #include "vtkMultiBlockDataSet.h"
20 
21 #include "schema/VTXSchema.h"
22 #include <adios2.h>
23 
24 namespace vtx
25 {
26 VTK_ABI_NAMESPACE_BEGIN
27 
29 {
30 public:
32  double Time = 0.;
34  size_t Step = 0;
35 
37  std::unique_ptr<VTXSchema> Reader;
38 
39  VTXSchemaManager() = default;
40  ~VTXSchemaManager() = default;
41 
49  void Update(
50  const std::string& streamName, size_t step = 0, const std::string& schemaName = "vtk.xml");
51 
57  void Fill(vtkMultiBlockDataSet* multiblock, size_t step = 0);
58 
59 private:
61  std::string StreamName;
62 
64  std::unique_ptr<adios2::ADIOS> ADIOS;
65 
67  adios2::IO IO;
68 
70  adios2::Engine Engine;
71 
73  std::string SchemaName;
74 
75  static const std::set<std::string> SupportedTypes;
76 
78  void InitReader();
79 
81  bool InitReaderXMLVTK();
82 };
83 
84 VTK_ABI_NAMESPACE_END
85 } // end namespace adios2vtk
86 
87 #endif /* VTK_IO_ADIOS2_VTX_VTXSchemaManager_h */
Composite dataset that organizes datasets into blocks.
double Time
current time
VTXSchemaManager()=default
void Fill(vtkMultiBlockDataSet *multiblock, size_t step=0)
Fill multiblock data.
~VTXSchemaManager()=default
void Update(const std::string &streamName, size_t step=0, const std::string &schemaName="vtk.xml")
Updates metadata if stream is changed.
std::unique_ptr< VTXSchema > Reader
managed polymorphic reader, could be extended in a container
size_t Step
current adios2 step
@ string
Definition: vtkX3D.h:490