icedb  version 0.5.1
Snow particle scattering database API
Group_impl.hpp
Go to the documentation of this file.
1 #pragma once
2 #include <memory>
3 #include <set>
4 #include "../icedb/Group.hpp"
5 #include "Attribute_impl.hpp"
6 #include "Table_impl.hpp"
7 namespace icedb {
8  namespace Groups {
9 
10 #ifdef _MSC_FULL_VER
11 #pragma warning( push )
12 #pragma warning(disable:4250)
13 #endif
14  class Group_impl : virtual public Group, virtual public Attributes::CanHaveAttributes_impl, virtual public Tables::CanHaveTables_impl
15  {
18 
19  friend class Group;
20  public:
21  Group_impl();
22  Group_impl(const std::string &name, gsl::not_null<H5::Group*> parent);
23  Group_impl(const std::string &name, gsl::not_null<H5::H5File*> parent);
24  Group_impl(const std::string &name, gsl::not_null<const Group*> parent);
26  virtual ~Group_impl();
27  Group_ptr createGroup(const std::string &groupName) override;
28  Group_ptr openGroup(const std::string &groupName) const override;
29  bool doesGroupExist(const std::string &groupName) const override;
31  std::set<std::string> getGroupNames() const override;
32  void deleteGroup(const std::string &groupName) override;
33  Group_HDF_shared_ptr getHDF5Group() const override;
34  };
35 #ifdef _MSC_FULL_VER
36 #pragma warning( pop )
37 #endif
38 
39  }
40 }
std::set< std::string > getGroupNames() const override
Definition: Groups.cpp:148
std::shared_ptr< H5::Group > Group_HDF_shared_ptr
Definition: Group.hpp:32
Group_HDF_shared_ptr getHDF5Group() const override
Get the fundamental HDF5 object that the group is built on.
Definition: Groups.cpp:57
A group is similar to a folder / directory. It can have Attributes and Tables.
Definition: Group.hpp:22
Group_HDF_shared_ptr grp
Definition: Group_impl.hpp:17
bool doesGroupExist(const std::string &groupName) const override
Does a group with this name exist?
Definition: Groups.cpp:142
std::unique_ptr< Groups::Group > Group_ptr
Definition: Group.hpp:30
Group_ptr openGroup(const std::string &groupName) const override
Opens a group.
Definition: Groups.cpp:107
Group_ptr createGroup(const std::string &groupName) override
Create a group.
Definition: Groups.cpp:61
std::shared_ptr< H5::H5Object > parent
void deleteGroup(const std::string &groupName) override
Unlink the specified child group.
Definition: Groups.cpp:138
const std::string name
The name of the group.
Definition: Group.hpp:34