FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
F5Fragment.hpp
1#ifndef __FIBERIO_HDF5_F5_FRAGMENT_HPP
2#define __FIBERIO_HDF5_F5_FRAGMENT_HPP
3
4#include "H++/H5Group.hpp"
5#include "H++/H5Dataset.hpp"
6#include "TypeRegistry.hpp"
7
8using namespace MemCore;
9using namespace Fiber;
10
12{
13protected:
14
15 RefPtr<H5Group> myGroup;
16 RefPtr<H5ID> H5ElementType;
17
18public:
20 DatasetName,
21 Filename,
22 FragmentPath;
23
24
25 size_t NumberOfAvailableFragments = 0,
26 CurrentFragmentNumber = 0;
27
28 struct Reader : ReferenceBase<Reader>
29 {
30 Reader();
31 ~Reader();
32
33 virtual herr_t read(hid_t LoadID, void*dataPtr) const = 0;
34 virtual hid_t getHid() const = 0;
35 };
36
38 {
39 RefPtr<H5Dataset> myDataset;
40
42 : myDataset(DR)
43 {}
44
45 herr_t read(hid_t LoadID, void*dataPtr) const override;
46
47 hid_t getHid() const override
48 {
49 if (myDataset)
50 return myDataset->getHid();
51
52 return -1;
53 }
54 };
55
57 {
58 RefPtr<H5Group> myDataset;
59 RefPtr<H5ID> H5ElementType;
60
62 : myDataset(DR)
63 , H5ElementType(theH5ElementType)
64 {}
65
66 herr_t read(hid_t LoadID, void*dataPtr) const override;
67
68 hid_t getHid() const override
69 {
70 if (myDataset)
71 return myDataset->getHid();
72
73 return -1;
74 }
75 };
76
77 RefPtr<H5DatasetAccess> DatasetAccess;
78
80 {}
81
82 // Contiguous
84 const std::string&theDatasetName,
85 const std::string&Filename,
86 const std::string&FragmentPath,
87 size_t NumberOfAvailableFragments,
88 size_t CurrentFragmentNumber);
89
90
91 // Separated compound
93 const std::string&Filename,
94 const std::string&FragmentPath,
95 const RefPtr<H5ID>&H5ElementType,
96 size_t NumberOfAvailableFragments,
97 size_t CurrentFragmentNumber);
98
100
102
103 void invalidate()
104 {
105 myGroup = MemCore::NullPtr();
106 }
107};
108
109
110#endif // __FIBERIO_HDF5_F5_FRAGMENT_HPP
basic_string< char > string
Definition F5Fragment.hpp:12
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
std::nullptr_t NullPtr
Definition F5Fragment.hpp:38
Definition F5Fragment.hpp:57
Definition F5Fragment.hpp:29