summaryrefslogtreecommitdiffstats
path: root/doc/html/Groups.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/Groups.html')
-rw-r--r--doc/html/Groups.html404
1 files changed, 0 insertions, 404 deletions
diff --git a/doc/html/Groups.html b/doc/html/Groups.html
deleted file mode 100644
index 2941008..0000000
--- a/doc/html/Groups.html
+++ /dev/null
@@ -1,404 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>Group Interface (H5G)</title>
-
-<!-- #BeginLibraryItem "/ed_libs/styles_UG.lbi" -->
-<!--
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * This file is part of HDF5. The full HDF5 copyright notice, including *
- * terms governing use, modification, and redistribution, is contained in *
- * the files COPYING and Copyright.html. COPYING can be found at the root *
- * of the source code distribution tree; Copyright.html can be found at the *
- * root level of an installed copy of the electronic HDF5 document set and *
- * is linked from the top-level documents page. It can also be found at *
- * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- -->
-
-<link href="ed_styles/UGelect.css" rel="stylesheet" type="text/css">
-<!-- #EndLibraryItem --></head>
-
- <body bgcolor="#FFFFFF">
-
-
-<!-- #BeginLibraryItem "/ed_libs/NavBar_UG.lbi" --><hr>
-<center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
- <a href="index.html">HDF5 documents and links</a>&nbsp;<br>
- <a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
- <a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
- <a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User's Guide for Release 1.6</a>&nbsp;<br>
- <!--
- <a href="Glossary.html">Glossary</a><br>
- -->
-</td>
-<td valign=top align=right>
- And in this document, the
- <a href="H5.user.html"><strong>HDF5 User's Guide from Release 1.4.5:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
- <br>
- <a href="Files.html">Files</a>&nbsp;&nbsp;
- <a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
- <a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
- <a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
- <a href="Groups.html">Groups</a>&nbsp;&nbsp;
- <br>
- <a href="References.html">References</a>&nbsp;&nbsp;
- <a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
- <a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
- <a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
- <br>
- <a href="Filters.html">Filters</a>&nbsp;&nbsp;
- <a href="Caching.html">Caching</a>&nbsp;&nbsp;
- <a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
- <a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
- <br>
- <a href="Performance.html">Performance</a>&nbsp;&nbsp;
- <a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
- <a href="Environment.html">Environment</a>&nbsp;&nbsp;
- <a href="ddl.html">DDL</a>&nbsp;&nbsp;
-</td></tr>
-</table>
-</center>
-<hr>
-<!-- #EndLibraryItem --><h1>The Group Interface (H5G)</h1>
-
- <h2>1. Introduction</h2>
-
- <p>An object in HDF5 consists of an object header at a fixed file
- address that contains messages describing various properties of
- the object such as its storage location, layout, compression,
- etc. and some of these messages point to other data such as the
- raw data of a dataset. The address of the object header is also
- known as an <em>OID</em> and HDF5 has facilities for translating
- names to OIDs.
-
- <p>Every HDF5 object has at least one name and a set of names can
- be stored together in a group. Each group implements a name
- space where the names are any length and unique with respect to
- other names in the group.
-
- <p>Since a group is a type of HDF5 object it has an object header
- and a name which exists as a member of some other group. In this
- way, groups can be linked together to form a directed graph.
- One particular group is called the <em>Root Group</em> and is
- the group to which the HDF5 file super block points. Its name is
- "/" by convention. The <em>full name</em> of an object is
- created by joining component names with slashes much like Unix.
-
- <p>
- <center>
- <img alt="Group Graph Example" src="group_p1.gif">
- </center>
-
- <p>However, unlike Unix which arranges directories hierarchically,
- HDF5 arranges groups in a directed graph. Therefore, there is
- no ".." entry in a group since a group can have more than one
- parent. There is no "." entry either but the library understands
- it internally.
-
- <h2>2. Names</h2>
-
- <p>HDF5 places few restrictions on names: component names may be
- any length except zero and may contain any character except
- slash ("/") and the null terminator. A full name may be
- composed of any number of component names separated by slashes,
- with any of the component names being the special name ".". A
- name which begins with a slash is an <em>absolute</em> name
- which is looked up beginning at the root group of the file while
- all other <em>relative</em> names are looked up beginning at the
- specified group.
- Multiple consecutive slashes in a full name are treated as
- single slashes and trailing slashes are not significant. A
- special case is the name "/" (or equivalent) which refers to the
- root group.
-
- <p>Functions which operate on names generally take a location
- identifier which is either a file ID or a group ID and perform
- the lookup with respect to that location. Some possibilities
- are:
-
- <p>
- <center>
- <table border cellpadding=4>
- <tr>
- <th>Location Type</th>
- <th>Object Name</th>
- <th>Description</th>
- </tr>
-
- <tr>
- <td>File ID</td>
- <td><code>/foo/bar</code></td>
- <td>The object <code>bar</code> in group <code>foo</code>
- in the root group.</td>
- </tr>
-
- <tr>
- <td>Group ID</td>
- <td><code>/foo/bar</code></td>
- <td>The object <code>bar</code> in group <code>foo</code>
- in the root group of the file containing the specified
- group. In other words, the group ID's only purpose is
- to supply a file.</td>
- </tr>
-
- <tr>
- <td>File ID</td>
- <td><code>/</code></td>
- <td>The root group of the specified file.</td>
- </tr>
-
- <tr>
- <td>Group ID</td>
- <td><code>/</code></td>
- <td>The root group of the file containing the specified
- group.</td>
- </tr>
-
- <tr>
- <td>File ID</td>
- <td><code>foo/bar</code></td>
- <td>The object <code>bar</code> in group <code>foo</code>
- in the specified group.</td>
- </tr>
-
- <tr>
- <td>Group ID</td>
- <td><code>foo/bar</code></td>
- <td>The object <code>bar</code> in group <code>foo</code>
- in the specified group.</td>
- </tr>
-
- <tr>
- <td>File ID</td>
- <td><code>.</code></td>
- <td>The root group of the file.</td>
- </tr>
-
- <tr>
- <td>Group ID</td>
- <td><code>.</code></td>
- <td>The specified group.</td>
- </tr>
-
- <tr>
- <td>Other ID</td>
- <td><code>.</code></td>
- <td>The specified object.</td>
- </tr>
-
- </table>
- </center>
-
- <p>Note, however, that object names within a group must be unique.
- For example, <code>H5Dcreate</code> returns an error if a
- dataset with the dataset name specified in the parameter list
- already exists at the location specified in the parameter list.
-
-
- <h2>3. Creating, Opening, and Closing Groups</h2>
-
- <p>Groups are created with the <code>H5Gcreate()</code> function,
- and existing groups can be access with
- <code>H5Gopen()</code>. Both functions return an object ID which
- should be eventually released by calling
- <code>H5Gclose()</code>.
-
- <dl>
- <dt><code>hid_t H5Gcreate (hid_t <em>location_id</em>, const char
- *<em>name</em>, size_t <em>size_hint</em>)</code>
- <dd>This function creates a new group with the specified
- name at the specified location which is either a file ID or a
- group ID. The name must not already be taken by some other
- object and all parent groups must already exist. The
- <em>size_hint</em> is a hint for the number of bytes to
- reserve to store the names which will be eventually added to
- the new group. Passing a value of zero for <em>size_hint</em>
- is usually adequate since the library is able to dynamically
- resize the name heap, but a correct hint may result in better
- performance. The return value is a handle for the open group
- and it should be closed by calling <code>H5Gclose()</code>
- when it's no longer needed. A negative value is returned for
- failure.
-
- <br><br>
- <dt><code>hid_t H5Gopen (hid_t <em>location_id</em>, const char
- *<em>name</em>)</code>
- <dd>This function opens an existing group with the specified
- name at the specified location which is either a file ID or a
- group ID and returns an object ID. The object ID should be
- released by calling <code>H5Gclose()</code> when it is no
- longer needed. A negative value is returned for failure.
-
- <br><br>
- <dt><code>herr_t H5Gclose (hid_t <em>group_id</em>)</code>
- <dd>This function releases resources used by an group which was
- opened by <code>H5Gcreate()</code> or
- <code>H5Gopen()</code>. After closing a group the
- <em>group_id</em> should not be used again. This function
- returns zero for success or a negative value for failure.
- </dl>
-
- <h2>4. Objects with Multiple Names</h2>
-
- <p>An object (including a group) can have more than one
- name. Creating the object gives it the first name, and then
- functions described here can be used to give it additional
- names. The association between a name and the object is called
- a <em>link</em> and HDF5 supports two types of links: a <em>hard
- link</em> is a direct association between the name and the
- object where both exist in a single HDF5 address space, and a
- <em>soft link</em> is an indirect association.
-
- <p>
- <center>
- <img alt="Hard Link Example" src="group_p2.gif">
- </center>
-
- <p>
- <center>
- <img alt="Soft Link Example" src="group_p3.gif">
- </center>
-
- <dl>
- <dt>Object Creation</dt>
- <dd>The creation of an object creates a hard link which is
- indistinguishable from other hard links that might be added
- later.
-
- <br><br>
- <dt><code>herr_t H5Glink (hid_t <em>file_id</em>, H5G_link_t
- <em>link_type</em>, const char *<em>current_name</em>,
- const char *<em>new_name</em>)</code>
- <dd>Creates a new name for an object that has some current name
- (possibly one of many names it currently has). If the
- <em>link_type</em> is <code>H5G_LINK_HARD</code> then a new
- hard link is created. Otherwise if <em>link_type</em> is
- <code>H5T_LINK_SOFT</code> a soft link is created which is an
- alias for the <em>current_name</em>. When creating a soft
- link the object need not exist. This function returns zero
- for success or negative for failure.
-
- <br><br>
- <dt><code>herr_t H5Gunlink (hid_t <em>file_id</em>, const char
- *<em>name</em>)</code>
- <dd>This function removes an association between a name and an
- object. Object headers keep track of how many hard links refer
- to the object and when the hard link count reaches zero the
- object can be removed from the file (but objects which are
- open are not removed until all handles to the object are
- closed).
- </dl>
-
- <h2>5. Comments</h2>
-
- <p>Objects can have a comment associated with them. The comment
- is set and queried with these two functions:
-
- <dl>
- <dt><code>herr_t H5Gset_comment (hid_t <em>loc_id</em>, const
- char *<em>name</em>, const char *<em>comment</em>)</code>
- <dd>The previous comment (if any) for the specified object is
- replace with a new comment. If the <em>comment</em> argument
- is the empty string or a null pointer then the comment message
- is removed from the object. Comments should be relatively
- short, null-terminated, ASCII strings.
-
- <br><br>
- <dt><code>herr_t H5Gget_comment (hid_t <em>loc_id</em>, const
- char *<em>name</em>, size_t <em>bufsize</em>, char
- *<em>comment</em>)</code>
- <dd>The comment string for an object is returned through the
- <em>comment</em> buffer. At most <em>bufsize</em> characters
- including a null terminator are copied, and the result is
- not null terminated if the comment is longer than the supplied
- buffer. If an object doesn't have a comment then the empty
- string is returned.
- </dl>
-
- <a name="H5GUnlinkToCorrupt">
- <h2>6. Unlinking Datasets with H5Gmove and H5Gunlink</h2>
- </a>
-
- <p>Exercise caution in the use of <code>H5Gmove</code> and
- <code>H5Gunlink</code>.
-
- <p>Note that <code>H5Gmove</code> and <code>H5Gunlink</code>
- each include a step that unlinks pointers to a set or group.
- If the link that is removed is on the only path leading
- to a dataset or group, that dataset or group will become
- inaccessible in the file.
-
- <p>Consider the following example. Assume that the group
- <code>group2</code> can only be accessed via the following path,
- where <code>top_group</code> is a member of the file's root group:
- <pre>
- <code>/top_group/group1/group2/</code> </pre>
- Using <code>H5Gmove</code>, <code>top_group</code> is renamed
- to be a member of <code>group2</code>. At this point, since
- <code>top_group</code> was the only route from the root group
- to <code>group1</code>, there is no longer a path by which
- one can access <code>group1</code>, <code>group2</code>, or
- any member datasets.
- <code>top_group</code> and any member datasets have also
- become inaccessible.</p>
-
-
-<!-- #BeginLibraryItem "/ed_libs/NavBar_UG.lbi" --><hr>
-<center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
- <a href="index.html">HDF5 documents and links</a>&nbsp;<br>
- <a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
- <a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;<br>
- <a href="http://hdf.ncsa.uiuc.edu/HDF5/doc/UG/index.html">HDF5 User's Guide for Release 1.6</a>&nbsp;<br>
- <!--
- <a href="Glossary.html">Glossary</a><br>
- -->
-</td>
-<td valign=top align=right>
- And in this document, the
- <a href="H5.user.html"><strong>HDF5 User's Guide from Release 1.4.5:</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;
- <br>
- <a href="Files.html">Files</a>&nbsp;&nbsp;
- <a href="Datasets.html">Datasets</a>&nbsp;&nbsp;
- <a href="Datatypes.html">Datatypes</a>&nbsp;&nbsp;
- <a href="Dataspaces.html">Dataspaces</a>&nbsp;&nbsp;
- <a href="Groups.html">Groups</a>&nbsp;&nbsp;
- <br>
- <a href="References.html">References</a>&nbsp;&nbsp;
- <a href="Attributes.html">Attributes</a>&nbsp;&nbsp;
- <a href="Properties.html">Property Lists</a>&nbsp;&nbsp;
- <a href="Errors.html">Error Handling</a>&nbsp;&nbsp;
- <br>
- <a href="Filters.html">Filters</a>&nbsp;&nbsp;
- <a href="Caching.html">Caching</a>&nbsp;&nbsp;
- <a href="Chunking.html">Chunking</a>&nbsp;&nbsp;
- <a href="MountingFiles.html">Mounting Files</a>&nbsp;&nbsp;
- <br>
- <a href="Performance.html">Performance</a>&nbsp;&nbsp;
- <a href="Debugging.html">Debugging</a>&nbsp;&nbsp;
- <a href="Environment.html">Environment</a>&nbsp;&nbsp;
- <a href="ddl.html">DDL</a>&nbsp;&nbsp;
-</td></tr>
-</table>
-</center>
-<hr>
-<!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/Footer.lbi" --><address>
-<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
-<br>
-Describes HDF5 Release 1.4.5, February 2003
-</address><!-- #EndLibraryItem --><!-- Created: Tue Jan 27 09:11:27 EST 1998 -->
-<!-- hhmts start -->
-Last modified: 1 November 2000
-<!-- hhmts end -->
-
-
-</body>
-</html>