summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Object.h
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2019-02-17 15:42:00 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2019-02-17 15:42:00 (GMT)
commit67bc117efed376f28797fba1ed9b3f4ccf819c91 (patch)
tree23a8ff4e7e36686793566074555c01e87eb9756e /c++/src/H5Object.h
parentd16c4f59c266a6bad2b0faa90b413510d624f97e (diff)
parent5ad3891d9b861593ebe25d540bed2d913eb83aba (diff)
downloadhdf5-67bc117efed376f28797fba1ed9b3f4ccf819c91.zip
hdf5-67bc117efed376f28797fba1ed9b3f4ccf819c91.tar.gz
hdf5-67bc117efed376f28797fba1ed9b3f4ccf819c91.tar.bz2
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '5ad3891d9b861593ebe25d540bed2d913eb83aba': Remove ' ' (typo). Code improvement Removed an extra "using" statement Adding documentation More changes to align with incoming selection improvements. Added C++ wrapper for H5Ovisit2 Adding a C++ wrapper
Diffstat (limited to 'c++/src/H5Object.h')
-rw-r--r--c++/src/H5Object.h26
1 files changed, 22 insertions, 4 deletions
diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h
index 10b3865..4a4e909 100644
--- a/c++/src/H5Object.h
+++ b/c++/src/H5Object.h
@@ -40,16 +40,30 @@ namespace H5 {
// Inheritance: H5Location -> IdComponent
// Define the operator function pointer for H5Aiterate().
-typedef void (*attr_operator_t)(H5Object& loc/*in*/,
- const H5std_string attr_name/*in*/,
- void *operator_data/*in,out*/);
+typedef void (*attr_operator_t)(H5Object& loc,
+ const H5std_string attr_name,
+ void *operator_data);
+
+// Define the operator function pointer for H5Ovisit2().
+typedef int (*visit_operator_t)(H5Object& obj,
+ const H5std_string attr_name,
+ const H5O_info_t *oinfo,
+ void *operator_data);
// User data for attribute iteration
class UserData4Aiterate {
public:
attr_operator_t op;
void* opData;
- H5Object* location;
+ H5Object* location; // Consider changing to H5Location
+};
+
+// User data for visit iteration
+class UserData4Visit {
+ public:
+ visit_operator_t op;
+ void* opData;
+ H5Object* obj;
};
class H5_DLLCPP H5Object : public H5Location {
@@ -71,6 +85,9 @@ class H5_DLLCPP H5Object : public H5Location {
// Iterate user's function over the attributes of this object.
int iterateAttrs(attr_operator_t user_op, unsigned* idx = NULL, void* op_data = NULL);
+ // Recursively visit elements reachable from this object.
+ void visit(H5_index_t idx_type, H5_iter_order_t order, visit_operator_t user_op, void *op_data, unsigned int fields);
+
// Returns the object header version of an object
unsigned objVersion() const;
@@ -98,6 +115,7 @@ class H5_DLLCPP H5Object : public H5Location {
ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
H5std_string getObjName() const;
+
#ifndef DOXYGEN_SHOULD_SKIP_THIS
protected: