h5geo 0.4.0
C++17 and python API to work with geo-data (seismic, wells, maps, other in process) based on HDF5. Aimed at geoscientists and developers.
Loading...
Searching...
No Matches
h5basecontainer.h
1#ifndef H5BASECONTAINER_H
2#define H5BASECONTAINER_H
3
4#include "h5base.h"
5
8class H5BaseContainer : public H5Base
9{
10protected:
11 virtual ~H5BaseContainer() = default;
12
13public:
20 const std::string& name) = 0;
27 h5gt::Group group) = 0;
28
31 const std::string& name) = 0;
34 h5gt::Group group) = 0;
35
36 virtual H5Horizon* openHorizon(
37 const std::string& name) = 0;
38 virtual H5Horizon* openHorizon(
39 h5gt::Group group) = 0;
40
41 virtual H5Points1* createPoints1(
42 std::string& name,
44 h5geo::CreationType createFlag) = 0;
45 virtual H5Points1* createPoints1(
46 h5gt::Group group,
48 h5geo::CreationType createFlag) = 0;
49 virtual H5Points2* createPoints2(
50 std::string& name,
52 h5geo::CreationType createFlag) = 0;
53 virtual H5Points2* createPoints2(
54 h5gt::Group group,
56 h5geo::CreationType createFlag) = 0;
57 virtual H5Points3* createPoints3(
58 std::string& name,
60 h5geo::CreationType createFlag) = 0;
61 virtual H5Points3* createPoints3(
62 h5gt::Group group,
64 h5geo::CreationType createFlag) = 0;
65 virtual H5Points4* createPoints4(
66 std::string& name,
68 h5geo::CreationType createFlag) = 0;
69 virtual H5Points4* createPoints4(
70 h5gt::Group group,
72 h5geo::CreationType createFlag) = 0;
73
74 virtual H5Horizon* createHorizon(
75 std::string& name,
77 h5geo::CreationType createFlag) = 0;
78 virtual H5Horizon* createHorizon(
79 h5gt::Group group,
81 h5geo::CreationType createFlag) = 0;
82
84 virtual h5gt::File getH5File() const = 0;
85
87 virtual std::vector<h5gt::Group> getObjGroupList(const h5geo::ObjectType& objType, bool recursive) = 0;
89 virtual std::vector<std::string> getObjNameList(const h5geo::ObjectType& objType, bool recursive) = 0;
91 virtual size_t getObjCount(const h5geo::ObjectType& objType, bool recursive) = 0;
93 virtual h5geo::ContainerType getContainerType() = 0;
94
98 virtual bool isEqual(H5BaseContainer* other) const = 0;
99
101 virtual bool operator == (const H5BaseContainer& other) const = 0;
103 virtual bool operator != (const H5BaseContainer& other) const = 0;
104};
105
106using H5BaseCnt_ptr = std::unique_ptr<H5BaseContainer, h5geo::ObjectDeleter>;
107
108#endif // H5BASECONTAINER_H
Base class for geo-containers.
Definition h5basecontainer.h:9
virtual H5BaseObject * openObject(h5gt::Group group)=0
Open geo-object.
virtual size_t getObjCount(const h5geo::ObjectType &objType, bool recursive)=0
Get number of geo-objects of specified type within current container.
virtual std::vector< std::string > getObjNameList(const h5geo::ObjectType &objType, bool recursive)=0
Find all geo-objects of specified type within current container and return them as vector of names.
virtual h5gt::File getH5File() const =0
Get HDF5 file.
virtual bool isEqual(H5BaseContainer *other) const =0
Check if containers are the same.
virtual bool operator==(const H5BaseContainer &other) const =0
Check if containers are the same (compares HDF5 files)
virtual H5BaseObject * openObject(const std::string &name)=0
Open geo-object.
virtual H5BasePoints * openPoints(h5gt::Group group)=0
Open H5BasePoints derived points.
virtual H5BasePoints * openPoints(const std::string &name)=0
Open H5BasePoints derived points.
virtual h5geo::ContainerType getContainerType()=0
Get current container type.
virtual bool operator!=(const H5BaseContainer &other) const =0
Check if containers are not the same (compares HDF5 files)
virtual std::vector< h5gt::Group > getObjGroupList(const h5geo::ObjectType &objType, bool recursive)=0
Find all geo-objects of specified type within current container and return them as vector of Groups.
Base class for all geo-containers and geo-objects.
Definition h5base.h:182
Base class for geo-objects.
Definition h5baseobject.h:13
Base class for Points.
Definition h5basepoints.h:16
Provides API to work with horizons.
Definition h5horizon.h:17
Provides API to work with 1D points.
Definition h5points1.h:12
Provides API to work with 2D points.
Definition h5points2.h:12
Provides API to work with 3D points.
Definition h5points3.h:12
Provides API to work with 4D points.
Definition h5points4.h:12
CreationType
Definition h5enum.h:468
Class for creating H5Horizon.
Definition h5base.h:87
Common class for creating H5Points1, H5Points2, H5Points3, H5Points4.
Definition h5base.h:71