summaryrefslogtreecommitdiffstats
path: root/doc/html/Attributes.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/Attributes.html')
-rw-r--r--doc/html/Attributes.html177
1 files changed, 177 insertions, 0 deletions
diff --git a/doc/html/Attributes.html b/doc/html/Attributes.html
new file mode 100644
index 0000000..85fe70f
--- /dev/null
+++ b/doc/html/Attributes.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Attributes</title>
+ </head>
+
+ <body>
+ <h1>Attributes</h1>
+
+ <h2>1. Introduction</h2>
+
+ <p>The appribute API (H5A) is primarily designed to easily allow small
+ datasets to be attached to primary datasets as metadata information.
+ Additional goals for the H5A interface include keeping storage
+ requirement for each attribute to a minimum and easily sharing
+ attributes among datasets.
+ <p>Because attributes are intended to be small objects, large datasets
+ intended as additional information for a primary dataset should be
+ stored as supplemental datasets in a group with the primary dataset.
+ Attributes can then be attached to the group containing everything to
+ indicate a particular type of dataset with supplemental datasets is
+ located in the group. How small is "small" is not defined by the
+ library and is up to the user's interpretation.
+ <p>Attributes are not seperate objects in the file, they are always
+ contained in the object header of the object they are attached to. The
+ I/O functions defined below are required to read or write attribute
+ information, not the H5D I/O routines.
+
+ <h2>2. Creating, Opening, Closing and Deleting Attributes</h2>
+
+ <p>Attributes are created with the <code>H5Acreate()</code> function,
+ and existing attributes can be accessed with either the
+ <code>H5Aopen_name()</code> or <code>H5Aopen_idx()</code> functions. All
+ three functions return an object ID which should be eventually released
+ by calling <code>H5Aclose()</code>.
+
+ <dl>
+ <dt><code>hid_t H5Acreate (hid_t <em>loc_id</em>, const char
+ *<em>name</em>, hid_t <em>type_id</em>, hid_t <em>space_id</em>,
+ hid_t <em>create_plist_id</em>)</code>
+ <dd>This function creates an attribute which is attached to the object
+ specified with <em>loc_id</em>. The name specified with <em>name</em>
+ for each attribute for an object must be unique for that object. The <em>type_id</em>
+ and <em>space_id</em> are created with the H5T and H5S interfaces
+ respectively. Currently only simple dataspaces are allowed for attribute
+ dataspaces. The <em>create_plist_id</em> property list is currently
+ unused, but will be used int the future for optional properties of
+ attributes. The attribute ID returned from this function must be released
+ with H5Aclose or resource leaks will develop. Attempting to create an
+ attribute with the same name as an already existing attribute will fail,
+ leaving the pre-existing attribute in place.
+ This function returns a attribute ID for success or negative for failure.
+
+ <br><br>
+ <dt><code>hid_t H5Aopen_name (hid_t <em>loc_id</em>, const char
+ *<em>name</em>)</code>
+ <dd> This function opens an attribute which is attached to the object
+ specified with <em>loc_id</em>. The name specified with <em>name</em>
+ indicates the attribute to access. The attribute ID returned from this
+ function must be released with H5Aclose or resource leaks will develop.
+ This function returns a attribute ID for success or negative for failure.
+
+ <br><br>
+ <dt><code>hid_t H5Aopen_idx (hid_t <em>loc_id</em>, unsigned
+ <em>idx</em>)</code>
+ <dd>This function opens an attribute which is attached to the object
+ specified with <em>loc_id</em>. The attribute specified with <em>idx</em>
+ indicates the <em>idx</em>th attribute to access, starting with '0'. The
+ attribute ID returned from this function must be released with H5Aclose or
+ resource leaks will develop.
+ This function returns a attribute ID for success or negative for failure.
+
+ <br><br>
+ <dt><code>herr_t H5Aclose (hid_t <em>attr_id</em>)</code>
+ <dd>This function releases an attribute from use. Further use of the
+ attribute ID will result in undefined behavior.
+ This function returns non-negative on success, negative on failure.
+
+ <br><br>
+ <dt><code>herr_t H5Adelete (hid_t <em>loc_id</em>,
+ const char *<em>name</em>)</code>
+ <dd>This function removes the named attribute from a dataset or group.
+ This function should not be used when attribute IDs are open on <em>loc_id</em>
+ as it may cause the internal indexes of the attributes to change and future
+ writes to the open attributes to produce incorrect results.
+ Returns non-negative on success, negative on failure.
+ </dl>
+
+ <h2>3. Attribute I/O Functions</h2>
+
+ <p>Attributes may only be written as an entire object, no partial I/O
+ is currently supported.
+
+ <dl>
+ <dt><code>herr_t H5Awrite (hid_t <em>attr_id</em>,
+ hid_t <em>mem_type_id</em>, void *<em>buf</em>)</code>
+ <dd>This function writes an attribute, specified with <em>attr_id</em>,
+ with <em>mem_type_id</em> specifying the datatype in memory. The entire
+ attribute is written from <em>buf</em> to the file.
+ This function returns non-negative on success, negative on failure.
+
+ <br><br>
+ <dt><code>herr_t H5Aread (hid_t <em>attr_id</em>,
+ hid_t <em>mem_type_id</em>, void *<em>buf</em>)</code>
+ <dd>This function read an attribute, specified with <em>attr_id</em>, with
+ <em>mem_type_id</em> specifying the datatype in memory. The entire
+ attribute is read into <em>buf</em> from the file.
+ This function returns non-negative on success, negative on failure.
+
+ </dl>
+
+ <h2>4. Attribute Inquiry Functions</h2>
+
+ <dl>
+ <dt><code>int H5Aiterate (hid_t <em>loc_id</em>,
+ unsigned *<em>attr_number</em>,
+ H5A_operator <em>operator</em>,
+ void *<em>operator_data</em>)</code>
+ <dd> This function interates over the attributes of dataset or group
+ specified with <em>loc_id</em>. For each attribute of the object, the
+ <em>operator_data</em> and some additional information (specified below)
+ are passed to the <em>operator</em> function. The iteration begins with
+ the <em>*attr_number</em> object in the group and the next attribute to be
+ processed by the operator is returned in <em>*attr_number</em>.
+ <P>The iterator returns a negative value if something is wrong, the return
+ value of the last operator if it was non-zero, or zero if all attributes
+ were processed.
+ <P>The prototype for H5A_operator_t is: <br>
+ <code>typedef herr_t (*H5A_operator_t)(hid_t <em>loc_id</em>,
+ const char *<em>attr_name</em>, void *<em>operator_data</em>);</code>
+ <P>The operation receives the ID for the group or dataset being iterated over
+ (<em>loc_id</em>), the name of the current attribute about the object (<em>attr_name</em>)
+ and the pointer to the operator data passed in to H5Aiterate
+ (<em>operator_data</em>). The return values from an operator are:
+ <ul>
+ <li>Zero causes the iterator to continue, returning zero when all
+ attributes have been processed.
+ <li>Positive causes the iterator to immediately return that positive
+ value, indicating short-circuit success. The iterator can be
+ restarted at the next attribute.
+ <li>Negative causes the iterator to immediately return that value,
+ indicating failure. The iterator can be restarted at the next
+ attribute.
+ </ul>
+ <br><br>
+ <dt><code>hid_t H5Aget_space (hid_t <em>attr_id</em>)</code>
+ <dd>This function retrieves a copy of the dataspace for an attribute.
+ The dataspace ID returned from this function must be released with H5Sclose
+ or resource leaks will develop.
+ This function returns a dataspace ID for success or negative for failure.
+ <br><br>
+ <dt><code>hid_t H5Aget_type (hid_t <em>attr_id</em>)</code>
+ <dd>This function retrieves a copy of the datatype for an attribute.
+ The datatype ID returned from this function must be released with H5Tclose
+ or resource leaks will develop.
+ This function returns a datatype ID for success or negative for failure.
+ <br><br>
+ <dt><code>size_t H5Aget_name (hid_t <em>attr_id</em>,
+ char *<em>buf</em>, size_t <em>buf_size</em>)</code>
+ <dd>This function retrieves the name of an attribute for an attribute ID.
+ Up to <em>buf_size</em> characters are stored in <em>buf</em> followed by a
+ '\0' string terminator. If the name of the attribute is longer than
+ <em>buf_size</em>-1, the string terminator is stored in the last position
+ of the buffer to properly terminate the string.
+ This function returns the length of the attribute's name (which may be
+ longer than <em>buf_size</em>) on success or negative for failure.
+ <br><br>
+ <dt><code>int H5Anum_attrs (hid_t <em>loc_id</em>)</code>
+ <dd>This function returns the number of attributes attached to a dataset or
+ group, <em>loc_id</em>.
+ This function returns non-negative for success or negative for failure.
+ </dl>
+
+ <hr>
+ <address><a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Support</a></address>
+ </body>
+</html>