summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Group.cpp
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2018-03-12 04:36:48 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2018-03-12 04:36:48 (GMT)
commit3494282d42bf6147b32a10162353920f9e8b5a6a (patch)
tree843581557a75580be9a5387f7aaf92f574c42a6e /c++/src/H5Group.cpp
parent43158f3bb352f374c31556a5d0dc463a09e0b32e (diff)
downloadhdf5-3494282d42bf6147b32a10162353920f9e8b5a6a.zip
hdf5-3494282d42bf6147b32a10162353920f9e8b5a6a.tar.gz
hdf5-3494282d42bf6147b32a10162353920f9e8b5a6a.tar.bz2
HDFFV-10149 continued
Description: - Moved the new wrappers committed on Mar 9: 43158f3bb352f374c31556a5d0dc463a09e0b32e to H5Location and renamed some of them for overloading. This is because the loc_id in the C APIs can be file, group, dataset, named datatype, and attribute. Previous implementation was wrong following some inaccurate C API reference manual. - Only the following wrappers are modified or added: + H5Lcreate_soft: changed name from newLink to link // Creates a soft link from link_name to target_name. void link(const char *target_name, const char *link_name,...) void link(const H5std_string& target_name,...) + H5Lcreate_hard: changed name from newLink to link // Creates a hard link from new_name to curr_name. void link(const char *curr_name, const Group& new_loc,...) void link(const H5std_string& curr_name, const Group& new_loc,...) // Creates a hard link from new_name to curr_name in same location. void link(const char *curr_name, const hid_t same_loc,...) void link(const H5std_string& curr_name, const hid_t same_loc,...) + H5Ldelete: modified existing functions to add 2nd argument // Removes the specified link from this location. void unlink(const char *link_name, const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) void unlink(const H5std_string& link_name, const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) - copyLink and moveLink were only moved from Group to H5Location, no change - Added class LinkCreatPropList - Added overloaded functions H5Location::createGroup to take a link creation property list Group createGroup(const char* name, const LinkCreatPropList& lcpl) Group createGroup(const H5std_string& name, const LinkCreatPropList& lcpl) - Added wrapper for H5Lget_info() to H5Location H5L_info_t getLinkInfo(const H5std_string& link_name,...) Platforms tested: Linux/64 (jelly) Linux/ppc64 (ostrich) Darwin (osx1010test)
Diffstat (limited to 'c++/src/H5Group.cpp')
-rw-r--r--c++/src/H5Group.cpp292
1 files changed, 1 insertions, 291 deletions
diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp
index aa27a18..c4c7017 100644
--- a/c++/src/H5Group.cpp
+++ b/c++/src/H5Group.cpp
@@ -27,6 +27,7 @@
#include "H5OcreatProp.h"
#include "H5DcreatProp.h"
#include "H5DxferProp.h"
+#include "H5LcreatProp.h"
#include "H5LaccProp.h"
#include "H5Location.h"
#include "H5Object.h"
@@ -76,297 +77,6 @@ void Group::closeObjId(hid_t obj_id) const
}
}
-/*** For H5L API ***/
-
-//--------------------------------------------------------------------------
-// Function: Group::newLink
-///\brief Creates a soft link from \a link_name to \a target_name.
-///\param target_name - IN: Name of object, can be a non-existing object
-///\param link_name - IN: Link name for the target name
-///\param lcpl - IN: Link creation plist - default to PropList::DEFAULT
-///\param lapl - IN: Link access plist - default to PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-///\par Description
-/// Note that both names are interpreted relative to the current
-/// location.
-/// For information on creating a soft link, please refer to the
-/// H5Lcreate_soft APIs in the HDF5 C Reference Manual.
-// March 2018
-//--------------------------------------------------------------------------
-void Group::newLink(const char *target_name, const char *link_name,
- const PropList& lcpl, const PropList& lapl) const
-{
- herr_t ret_value = -1;
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lcreate_soft(target_name, id, link_name, lcpl_id, lapl_id);
- if (ret_value < 0)
- throwException("newLink", "creating soft link failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::newLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a target_name and \a link_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::newLink(const H5std_string& target_name, const H5std_string&
- link_name, const PropList& lcpl, const PropList& lapl) const
-{
- newLink(target_name.c_str(), link_name.c_str(), lcpl, lapl);
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::newLink
-///\brief Creates a hard link from \a new_name to \a curr_name.
-///\param curr_name - IN: Name of the existing object
-///\param new_name - IN: New name for the object
-///\param lcpl - IN: Link creation plist - default to PropList::DEFAULT
-///\param lapl - IN: Link access plist - default to PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-///\par Description
-/// Note that both names are interpreted relative to the
-/// specified location.
-/// For information on creating a hard link, please refer to the
-/// H5Lcreate_hard APIs in the HDF5 C Reference Manual.
-// March 2018
-//--------------------------------------------------------------------------
-void Group::newLink(const char *curr_name, const Group& new_loc,
- const char *new_name, const PropList& lcpl, const PropList& lapl) const
-{
- herr_t ret_value = -1;
- hid_t new_loc_id = new_loc.getId();
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lcreate_hard(getId(), curr_name, new_loc.getId(), new_name, H5P_DEFAULT, H5P_DEFAULT);
- if (ret_value < 0)
- throwException("newLink", "creating link failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::newLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a curr_name and \a new_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::newLink(const H5std_string& curr_name, const Group& new_loc,
- const H5std_string& new_name, const PropList& lcpl, const PropList& lapl) const
-{
- newLink(curr_name.c_str(), new_loc, new_name.c_str(), lcpl, lapl);
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::newLink
-///\brief Creates a hard link from \a new_name to \a curr_name - can be
-/// used to pass in H5L_SAME_LOC.
-///\param curr_name - IN: Name of the existing object
-///\param new_name - IN: New name for the object
-///\param lcpl - IN: Link creation plist - default to PropList::DEFAULT
-///\param lapl - IN: Link access plist - default to PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-///\par Description
-/// Note that both names are interpreted relative to the
-/// specified location.
-/// For information on creating a hard link, please refer to the
-/// H5Lcreate_hard APIs in the HDF5 C Reference Manual.
-// March 2018
-//--------------------------------------------------------------------------
-void Group::newLink(const char *curr_name, const hid_t same_loc,
- const char *new_name, const PropList& lcpl, const PropList& lapl) const
-{
- herr_t ret_value = -1;
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lcreate_hard(getId(), curr_name, same_loc, new_name, H5P_DEFAULT, H5P_DEFAULT);
-
- if (ret_value < 0)
- throwException("newLink", "creating link failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::newLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a curr_name and \a new_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::newLink(const H5std_string& curr_name, const hid_t same_loc,
- const H5std_string& new_name, const PropList& lcpl, const PropList& lapl) const
-{
- newLink(curr_name.c_str(), same_loc, new_name.c_str(), lcpl, lapl);
-}
-
-
-//--------------------------------------------------------------------------
-// Function: Group::copyLink
-///\brief Copies a link from one location to another.
-///\param src - IN: Source location
-///\param src_name - IN: Original name
-///\param dst - IN: Destination location
-///\param dst_name - IN: New name
-///\param lcpl - IN: Link creation plist - default PropList::DEFAULT
-///\param lapl - IN: Link access plist - default PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::copyLink(const char *src_name,
- const Group& dst, const char *dst_name, const PropList& lcpl,
- const PropList& lapl) const
-{
- herr_t ret_value;
- hid_t dst_id = dst.getId();
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lcopy(getId(), src_name, dst_id, dst_name, lcpl_id, lapl_id);
- if(ret_value < 0)
- throwException("copyLink", "H5Lcopy failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::copyLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a src_name and \a dst_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::copyLink(const H5std_string& src_name,
- const Group& dst, const H5std_string& dst_name, const PropList& lcpl,
- const PropList& lapl) const
-{
- copyLink(src_name.c_str(), dst, dst_name.c_str(), lcpl, lapl);
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::copyLink
-///\brief Copies a link to the same location.
-///\param src - IN: Source location
-///\param src_name - IN: Original name
-///\param dst_name - IN: New name
-///\param lcpl - IN: Link creation plist - default PropList::DEFAULT
-///\param lapl - IN: Link access plist - default PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::copyLink(const char *src_name,
- const char *dst_name, const PropList& lcpl,
- const PropList& lapl) const
-{
- herr_t ret_value;
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lcopy(getId(), src_name, H5L_SAME_LOC, dst_name, lcpl_id, lapl_id);
- if(ret_value < 0)
- throwException("copyLink", "H5Lcopy H5L_SAME_LOC failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::copyLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a src_name and \a dst_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::copyLink(const H5std_string& src_name,
- const H5std_string& dst_name, const PropList& lcpl,
- const PropList& lapl) const
-{
- copyLink(src_name.c_str(), dst_name.c_str(), lcpl, lapl);
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::moveLink
-///\brief Renames an object in a group/file and moves it to a new location.
-///\param src - IN: Source location
-///\param src_name - IN: Original name
-///\param dst - IN: Destination location
-///\param dst_name - IN: New name
-///\param lcpl - IN: Link creation plist - default PropList::DEFAULT
-///\param lapl - IN: Link access plist - default PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-///\note
-/// Exercise care in moving groups as it is possible to render
-/// data in a file inaccessible with Group::moveLink. Please refer
-/// to the Group Interface in the HDF5 User's Guide for details.
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::moveLink(const char* src_name, const Group& dst, const char* dst_name, const PropList& lcpl, const PropList& lapl) const
-{
- herr_t ret_value;
- hid_t dst_id = dst.getId();
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lmove(getId(), src_name, dst_id, dst_name, lcpl_id, lapl_id);
- if (ret_value < 0)
- throwException("moveLink", "H5Lmove failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::moveLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a src_name and \a dst_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::moveLink(const H5std_string& src_name, const Group& dst, const H5std_string& dst_name, const PropList& lcpl, const PropList& lapl) const
-{
- moveLink(src_name.c_str(), dst, dst_name.c_str(), lcpl, lapl);
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::moveLink
-///\brief Renames an object in a group or file to the same location.
-///\param src - IN: Source location
-///\param src_name - IN: Original name
-///\param dst_name - IN: New name
-///\param lcpl - IN: Link creation plist - default PropList::DEFAULT
-///\param lapl - IN: Link access plist - default PropList::DEFAULT
-///\exception H5::FileIException or H5::GroupIException
-///\note
-/// Exercise care in moving groups as it is possible to render
-/// data in a file inaccessible with Group::moveLink. Please refer
-/// to the Group Interface in the HDF5 User's Guide for details.
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::moveLink(const char* src_name, const char* dst_name, const PropList& lcpl, const PropList& lapl) const
-{
- herr_t ret_value;
- hid_t lcpl_id = lcpl.getId();
- hid_t lapl_id = lapl.getId();
-
- ret_value = H5Lmove(getId(), src_name, H5L_SAME_LOC, dst_name, lcpl_id, lapl_id);
- if (ret_value < 0)
- throwException("moveLink", "H5Lmove H5L_SAME_LOC failed");
-}
-
-//--------------------------------------------------------------------------
-// Function: Group::moveLink
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
-/// \c H5std_string for \a src_name and \a dst_name.
-///\exception H5::FileIException or H5::GroupIException
-// March, 2018
-//--------------------------------------------------------------------------
-void Group::moveLink(const H5std_string& src_name, const H5std_string& dst_name, const PropList& lcpl, const PropList& lapl) const
-{
- moveLink(src_name.c_str(), H5L_SAME_LOC, dst_name.c_str(), lcpl, lapl);
-}
-
-/*** End of H5L API section ***/
-
//--------------------------------------------------------------------------
// Function: Group::getLocId
// Purpose: Get the id of this group