icedb  version 0.5.1
Snow particle scattering database API
Classes | Functions
icedb::Groups Namespace Reference

All stuff related to Groups. More...

Classes

class  Group
 A group is similar to a folder / directory. It can have Attributes and Tables. More...
 
class  Group_impl
 

Functions

template<class HPointerType >
Group::Group_ptr _Impl_createGroup (const std::string &groupName, gsl::not_null< HPointerType *> parent)
 This exists because HDF5's API changed. More...
 

Detailed Description

All stuff related to Groups.

Function Documentation

◆ _Impl_createGroup()

template<class HPointerType >
Group::Group_ptr icedb::Groups::_Impl_createGroup ( const std::string &  groupName,
gsl::not_null< HPointerType *>  parent 
)

This exists because HDF5's API changed.

Definition at line 67 of file Groups.cpp.

References icedb::Groups::Group::createGroup(), and icedb::Attributes::CanHaveAttributes_impl::parent.

67  {
68  //_impl->grp->createGroup(groupName); // Bad for NetCDF. See http://www.unidata.ucar.edu/software/netcdf/docs/file_format_specifications.html#creation_order
69  hid_t baseGrpID = parent->getId();
70  /* Create group, with link_creation_order set in the group
71  * creation property list. */
72  // No suitable C++ methods found.
73 
74  hid_t gcpl_id = H5Pcreate(H5P_GROUP_CREATE);
75  assert(gcpl_id >= 0);
76  assert(H5Pset_link_creation_order(gcpl_id, H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED) >= 0);
77  assert(H5Pset_attr_creation_order(gcpl_id, H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED) >= 0);
78  hid_t newGrp_id = H5Gcreate2(baseGrpID, groupName.c_str(), H5P_DEFAULT, gcpl_id, H5P_DEFAULT);
79  assert(newGrp_id >= 0);
80  assert(H5Gclose(newGrp_id) >= 0);
81  assert(H5Pclose(gcpl_id) >= 0);
82 
83  return std::make_unique<Group_impl>(groupName, parent);
84  //return Group::Group_ptr(new Group_impl(groupName, parent));
85  }
Here is the call graph for this function: