Skip to content

Commit

Permalink
Updated overview section
Browse files Browse the repository at this point in the history
Update #110
  • Loading branch information
eugenwintersberger committed Nov 1, 2017
1 parent c5cf44f commit 287fc2a
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
3 changes: 3 additions & 0 deletions doc/source/images/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ set(IMAGES attribute_manager_uml.png
hyperslab_uml.png
property_lists_uml.png
selection_classes.png
hdf5_attributes.svg
hdf5_basic_tree.svg
hdf5_links.svg
)

add_sphinx_source(${IMAGES})
Expand Down
38 changes: 38 additions & 0 deletions doc/source/users_guide/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,44 @@ concepts behind *h5cpp*.
A high level view on HDF5
=========================

An HDF5 tree can be considered a tree of objects connected by links.

.. figure:: ../images/hdf5_basic_tree.svg
:align: center
:width: 75%

From a very high level point of view we can assume that there are two kind
of objects

1. container objects which can store links to other object
2. leafe like objects which cannot hold links to other objects

There is only one container type, a *Group*. For the leaf type of objects there
are only two: *Datasets* and *commited Datatypes*. We can collect all theses
objects under one master term: a *node*. From that point of view an HDF5 file
is a tree of nodes connected by links.

In addition each node can be augumented with attributes which can store
additional metadata about an objects

.. figure:: ../images/hdf5_attributes.svg
:align: center
:width: 75%

Attributes can be accessed via their name. Lets have a closer look on the
links.

.. figure:: ../images/hdf5_links.svg
:align: center
:width: 75%

There are actually three kinds of links connecting objects within a file

* *hard links* which are created when a new object is created in a file
* *soft links* which can be used liks symbolic links on a file system to
provide alternative means of access to an object
* *external links* providing a means to reference objects from a different
file.


Nodes and links
Expand Down

0 comments on commit 287fc2a

Please sign in to comment.