9#ifndef H5NODE_TRAITS_HPP 
   10#define H5NODE_TRAITS_HPP 
   14#include "../H5PropertyList.hpp" 
   15#include "H5_definitions.hpp" 
   22template <
typename Derivate>
 
   55  template<
typename Type>
 
   82  template <std::
size_t N>
 
   91      const std::string& dtype_name,
 
  100      const std::string& dataset_name,
 
  122  File getFile() 
const;
 
  135  LinkInfo getLinkInfo(
const std::string& objName) 
const;
 
  150  std::string 
unpackExternalLink(
const std::string& objName, std::string& fileName_out);
 
  159  bool rename(
const std::string& src_path,
 
  160              const std::string& dest_path,
 
  174  bool exist(
const std::string& obj_name,
 
  176             bool raise_errors = 
false) 
const;
 
  185  bool resolved(
const std::string& obj_name,
 
  187                bool raise_errors = 
false) 
const;
 
  193                        bool raise_errors = 
false) 
const;
 
  195  bool hasObject(
const std::string& objName, 
const ObjectType& objType,
 
  197                 bool raise_errors = 
false) 
const;
 
  239  template<
typename Node,
 
  240           typename std::enable_if<
 
  241             std::is_same<Node, File>::value |
 
  242             std::is_same<Node, Group>::value>::type* = 
nullptr>
 
  245      const std::string& linkName,
 
  246      const LinkType& linkType,
 
  247      const std::string& targetPath = 
"",
 
  254      const std::string& linkName,
 
  255      const LinkType& linkType,
 
  256      const std::string& targetPath = 
"",
 
  263      const std::string& linkName,
 
  264      const LinkType& linkType,
 
  265      const std::string& targetPath = 
"",
 
  271  typedef Derivate derivate_type;
 
  276  bool _exist(
const std::string& node_name,
 
  278              bool raise_errors = 
false) 
const;
 
  280  bool _resolved(
const std::string& node_name,
 
  282                 bool raise_errors = 
false) 
const;
 
  285  Object _open(
const std::string& node_name,
 
  289  void _copy(
const T& obj, 
const std::string& newName,
 
  297      const std::string& linkName,
 
  298      const LinkType& linkType,
 
  299      std::string targetPath = 
"",
 
 
Definition H5PropertyList.hpp:255
Definition H5PropertyList.hpp:171
Class representing a dataset.
Definition H5DataSet.hpp:28
Class representing the space (dimensions) of a dataset.
Definition H5DataSpace.hpp:37
Definition H5PropertyList.hpp:295
HDF5 Data Type.
Definition H5DataType.hpp:48
File class.
Definition H5File.hpp:25
A structure representing a set of fixed-length strings.
Definition H5DataType.hpp:305
Definition H5PropertyList.hpp:162
Definition H5PropertyList.hpp:157
Represents an hdf5 group.
Definition H5Group.hpp:23
Definition H5PropertyList.hpp:138
Definition H5PropertyList.hpp:129
Definition H5Object.hpp:200
NodeTraits: Base class for Group and File.
Definition H5Node_traits.hpp:23
std::string unpackExternalLink(const std::string &objName, std::string &fileName_out)
unpackExternalLink retrieve target path object path and file path
Definition H5Node_traits_misc.hpp:194
DataSet createDataSet(const std::string &dataset_name, const DataSpace &space, const DataType &type, const LinkCreateProps &linkCreateProps=LinkCreateProps(), const DataSetCreateProps &dsetCreateProps=DataSetCreateProps(), const DataSetAccessProps &dsetAccessProps=DataSetAccessProps())
createDataSet Create a new dataset in the current file of datatype type and of size space
Definition H5Node_traits_misc.hpp:39
void unlink(const std::string &obj_name, const LinkAccessProps &linkAccessProps=LinkAccessProps()) const
unlink the given dataset or group
Definition H5Node_traits_misc.hpp:339
std::string getObjectName(size_t index, const LinkAccessProps &linkAccessProps=LinkAccessProps()) const
return the name of the object with the given index
Definition H5Node_traits_misc.hpp:175
size_t getNumberObjects() const
return the number of leaf objects of the node / group
Definition H5Node_traits_misc.hpp:165
ObjectType getObjectType(const std::string &obj_name, const LinkAccessProps &accessProps=LinkAccessProps()) const
A shorthand to get the kind of object pointed to (group, dataset, type...)
Definition H5Node_traits_misc.hpp:362
std::string unpackSoftLink(const std::string &objName)
unpackSoftLink retrieve target path object path
Definition H5Node_traits_misc.hpp:189
bool existAndResolved(const std::string &obj_name, const LinkAccessProps &linkAccessProps=LinkAccessProps(), bool raise_errors=false) const
existAndResolved invokes exist() and then reoslved()
Definition H5Node_traits_misc.hpp:312
bool resolved(const std::string &obj_name, const LinkAccessProps &linkAccessProps=LinkAccessProps(), bool raise_errors=false) const
resolved Hard links always resolved but Soft/External links may point to unexistant objects
Definition H5Node_traits_misc.hpp:298
Group copy(const Group &obj, const std::string &objNewName, const ObjectCopyProps ©Props=ObjectCopyProps(), const LinkCreateProps &linkCreateProps=LinkCreateProps(), const GroupAccessProps &groupAccessProps=GroupAccessProps())
Copies specified object to the new destination (this File/Group) under new name. The destination must...
Definition H5Node_traits_misc.hpp:368
bool rename(const std::string &src_path, const std::string &dest_path, const LinkCreateProps &linkCreateProps=LinkCreateProps(), const LinkAccessProps &linkAccessProps=LinkAccessProps()) const
moves an object and its content within an HDF5 file.
Definition H5Node_traits_misc.hpp:200
Group getGroup(const std::string &group_name, const GroupAccessProps &groupAccessProps=GroupAccessProps()) const
open an existing group with the name group_name
Definition H5Node_traits_misc.hpp:142
LinkType getLinkType(const std::string &obj_name, const LinkAccessProps &linkAccessProps=LinkAccessProps()) const
Returns the kind of link of the given name (soft, hard...)
Definition H5Node_traits_misc.hpp:349
std::vector< std::string > listObjectNames() const
list all leaf objects name of the node / group
Definition H5Node_traits_misc.hpp:216
DataSet getDataSet(const std::string &dataset_name, const DataSetAccessProps &accessProps=DataSetAccessProps()) const
get an existing dataset in the current file
Definition H5Node_traits_misc.hpp:102
bool exist(const std::string &obj_name, const LinkAccessProps &linkAccessProps=LinkAccessProps(), bool raise_errors=false) const
check a dataset or group exists in the current node / group
Definition H5Node_traits_misc.hpp:284
Group createGroup(const std::string &group_name, const LinkCreateProps &linkCreateProps=LinkCreateProps(), const GroupCreateProps &groupCreateProps=GroupCreateProps(), const GroupAccessProps &groupAccessProps=GroupAccessProps())
create a new group, and eventually intermediate groups
Definition H5Node_traits_misc.hpp:127
Definition H5PropertyList.hpp:305
Definition H5Object.hpp:55