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