icedb  version 0.5.1
Snow particle scattering database API
Database_impl.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "../icedb/Database.hpp"
3 #include "../private/hdf5_supplemental.hpp"
4 
5 namespace icedb {
6  namespace Databases {
7  class file_image {
8  hid_t propertyList;
9  std::vector<char> buffer;
10  const std::string filename;
11  std::shared_ptr<H5::H5File> hFile;
12  public:
13  std::shared_ptr<H5::H5File> getHFile() const;
14  file_image(const std::string &filename,
15  size_t desiredSizeInBytes);
16  ~file_image();
17  };
18 
19  class Database_impl : public Database {
20  friend class Database;
21  std::shared_ptr<H5::H5File> hFile;
23  static std::shared_ptr<H5::H5File> makeDatabaseFileStandard(const std::string &p);
24  public:
25  Database_impl();
26  Database_impl(size_t virtualMemSizeInBytes);
27  virtual ~Database_impl();
28  Groups::Group::Group_ptr openGroup(const std::string &path) override;
29  Groups::Group::Group_ptr createGroup(const std::string &path) override;
30  Groups::Group::Group_ptr createGroupStructure(const std::string &groupName) override;
31  Groups::Group::Group_ptr createGroupStructure(const std::vector<std::string> &groupNames) override;
32  //ObjectIdPathSet_Type findObjects(ObjectTypes type, const std::string &base, bool recurse = true);
33  };
34  }
35 
36 }
H5::Group createGroupStructure(const std::string &groupName, ICEDB_H5_GROUP_OWNER &base)
file_image hFileImage
Used if a virtual base is needed (the typical case)
file_image(const std::string &filename, size_t desiredSizeInBytes)
Definition: databases.cpp:17
std::shared_ptr< H5::H5File > getHFile() const
Definition: databases.cpp:16
HDFgroup_t openGroup(gsl::not_null< ICEDB_H5_GROUP_OWNER_PTR > base, gsl::not_null< const char *> name)
Definition: export-hdf5.cpp:75
std::shared_ptr< H5::H5File > hFile
std::unique_ptr< Groups::Group > Group_ptr
Definition: Group.hpp:30
std::shared_ptr< H5::H5File > hFile
std::vector< char > buffer