mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
796 lines
43 KiB
HTML
796 lines
43 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.16.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>HDF5: DDL in BNF for HDF5 1.14.4 and above</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() { init_search(); });
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="hdf5doxy.css" rel="stylesheet" type="text/css"/>
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="hdf5doxy.css" rel="stylesheet" type="text/css">
|
|
<script type="text/javascript" src="hdf5_navtree_hacks.js"></script>
|
|
<div style="background:#FFDDDD;font-size:120%;text-align:center;margin:0;padding:5px">Help us improve by taking our short survey: <a href="https://www.hdfgroup.org/website-survey/">https://www.hdfgroup.org/website-survey/</a></div>
|
|
<!-- ... other metadata & script includes ... -->
|
|
<script type="text/javascript" src="doxygen-awesome-tabs.js"></script>
|
|
<script type="text/javascript">
|
|
DoxygenAwesomeTabs.init()
|
|
</script>
|
|
<!-- Google tag (gtag.js) -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-57FMZK4S7X"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
gtag('config', 'G-57FMZK4S7X');
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectlogo"><img alt="Logo" src="HDFG-logo.png"/></td>
|
|
<td id="projectalign">
|
|
<div id="projectname">HDF5<span id="projectnumber"> Last Updated on 2026-09-19</span>
|
|
</div>
|
|
<div id="projectbrief">The HDF5 Field Guide</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.16.1 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
</script>
|
|
<script type="text/javascript">
|
|
$(function() { codefold.init(); });
|
|
</script>
|
|
<div id="main-nav">
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="_getting_started.html"><span>Getting started</span></a></li>
|
|
<li><a href="_u_g.html"><span>User Guide</span></a></li>
|
|
<li><a href="_r_m.html"><span>Reference Manual</span></a></li>
|
|
<li><a href="_cookbook.html"><span>Cookbook</span></a></li>
|
|
<li><a href="_t_n.html"><span>Technical Notes</span></a></li>
|
|
<li><a href="_r_f_c.html"><span>RFCs</span></a></li>
|
|
<li><a href="_s_p_e_c.html"><span>Specifications</span></a></li>
|
|
<li><a href="_g_l_s.html"><span>Glossary</span></a></li>
|
|
<li><a href="_f_t_s.html"><span>Full-Text Search</span></a></li>
|
|
<li><a href="_about.html"><span>About</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<span id="MSearchSelect" class="search-icon" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"><span class="search-icon-dropdown"></span></span>
|
|
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><div id="MSearchCloseImg" class="close-icon"></div></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- main-nav -->
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(function(){initNavTree('_d_d_l_b_n_f114.html','',''); });
|
|
</script>
|
|
<div id="container">
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div><div class="header">
|
|
<div class="headertitle"><div class="title">DDL in BNF for HDF5 1.14.4 and above </div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><p>Navigate back: <a class="el" href="index.html" title="notitle">Main</a> / <a class="el" href="_s_p_e_c.html" title="Specifications">Specifications</a> </p><hr />
|
|
<h1 class="doxsection"><a class="anchor" id="intro114"></a>
|
|
Introduction</h1>
|
|
<p>This document contains the data description language (DDL) for an HDF5 file. The description is in Backus-Naur Form (BNF).</p>
|
|
<h1 class="doxsection"><a class="anchor" id="expo114"></a>
|
|
Explanation of Symbols</h1>
|
|
<p>This section contains a brief explanation of the symbols used in the DDL.</p>
|
|
<div class="fragment"><div class="line">::= defined as</div>
|
|
<div class="line"> <tname> a token with the name tname</div>
|
|
<div class="line"> <a> | <b> one of <a> or <b></div>
|
|
<div class="line"> <a>opt zero or one occurrence of <a></div>
|
|
<div class="line"> <a>* zero or more occurrence of <a></div>
|
|
<div class="line"> <a>+ one or more occurrence of <a></div>
|
|
<div class="line"> [0-9] an element in the range between 0 and 9</div>
|
|
<div class="line"> '[' the token within the quotes (used for special characters)</div>
|
|
<div class="line"> TBD To Be Decided</div>
|
|
</div><!-- fragment --><h1 class="doxsection"><a class="anchor" id="ddl114"></a>
|
|
The DDL</h1>
|
|
<div class="fragment"><div class="line"><file> ::= HDF5 <file_name> { <file_super_block>opt <root_group> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><file_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><file_super_block> ::= SUPER_BLOCK {</div>
|
|
<div class="line"> SUPERBLOCK_VERSION <int_value></div>
|
|
<div class="line"> FREELIST_VERSION <int_value></div>
|
|
<div class="line"> SYMBOLTABLE_VERSION <int_value></div>
|
|
<div class="line"> OBJECTHEADER_VERSION <int_value></div>
|
|
<div class="line"> OFFSET_SIZE <int_value></div>
|
|
<div class="line"> LENGTH_SIZE <int_value></div>
|
|
<div class="line"> BTREE_RANK <int_value></div>
|
|
<div class="line"> BTREE_LEAF <int_value></div>
|
|
<div class="line"> ISTORE_K <int_value></div>
|
|
<div class="line"> <super_block_filespace></div>
|
|
<div class="line"> USER_BLOCK {</div>
|
|
<div class="line"> USERBLOCK_SIZE <int_value></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><super_block_filespace> ::= FILE_SPACE_STRATEGY <super_block_strategy></div>
|
|
<div class="line"> FREE_SPACE_PERSIST <boolean_value></div>
|
|
<div class="line"> FREE_SPACE_SECTION_THRESHOLD <int_value></div>
|
|
<div class="line"> FILE_SPACE_PAGE_SIZE <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><super_block_strategy> ::= H5F_FSPACE_STRATEGY_FSM_AGGR | H5F_FSPACE_STRATEGY_PAGE |</div>
|
|
<div class="line"> H5F_FSPACE_STRATEGY_AGGR | H5F_FSPACE_STRATEGY_NONE |</div>
|
|
<div class="line"> Unknown strategy</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><root_group> ::= GROUP "/" {</div>
|
|
<div class="line"> <anon_named_datatype>*</div>
|
|
<div class="line"> <object_id>opt</div>
|
|
<div class="line"> <group_comment>opt</div>
|
|
<div class="line"> <group_attribute>*</div>
|
|
<div class="line"> <group_member>*</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><datatype> ::= <atomic_type> | <compound_type> | <variable_length_type> | <array_type></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><anon_named_datatype> ::= DATATYPE <anon_named_type_name> {</div>
|
|
<div class="line"> <datatype></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><anon_named_type_name> ::= the assigned name for anonymous named type is</div>
|
|
<div class="line"> in the form of #oid, where oid is the object id</div>
|
|
<div class="line"> of the type</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><atomic_type> ::= <integer> | <float> | <time> | <string> |</div>
|
|
<div class="line"> <bitfield> | <opaque> | <reference> | <enum></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><boolean_value> ::= FALSE | TRUE</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><integer> ::= H5T_STD_I8BE | H5T_STD_I8LE |</div>
|
|
<div class="line"> H5T_STD_I16BE | H5T_STD_I16LE |</div>
|
|
<div class="line"> H5T_STD_I32BE | H5T_STD_I32LE |</div>
|
|
<div class="line"> H5T_STD_I64BE | H5T_STD_I64LE |</div>
|
|
<div class="line"> H5T_STD_U8BE | H5T_STD_U8LE |</div>
|
|
<div class="line"> H5T_STD_U16BE | H5T_STD_U16LE |</div>
|
|
<div class="line"> H5T_STD_U32BE | H5T_STD_U32LE |</div>
|
|
<div class="line"> H5T_STD_U64BE | H5T_STD_U64LE |</div>
|
|
<div class="line"> H5T_NATIVE_CHAR | H5T_NATIVE_UCHAR |</div>
|
|
<div class="line"> H5T_NATIVE_SHORT | H5T_NATIVE_USHORT |</div>
|
|
<div class="line"> H5T_NATIVE_INT | H5T_NATIVE_UINT |</div>
|
|
<div class="line"> H5T_NATIVE_LONG | H5T_NATIVE_ULONG |</div>
|
|
<div class="line"> H5T_NATIVE_LLONG | H5T_NATIVE_ULLONG</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><float> ::= H5T_IEEE_F16BE | H5T_IEEE_F16LE | </div>
|
|
<div class="line"> H5T_IEEE_F32BE | H5T_IEEE_F32LE |</div>
|
|
<div class="line"> H5T_IEEE_F64BE | H5T_IEEE_F64LE |</div>
|
|
<div class="line"> H5T_NATIVE_FLOAT16 | H5T_NATIVE_FLOAT | </div>
|
|
<div class="line"> H5T_NATIVE_DOUBLE | H5T_NATIVE_LDOUBLE</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><time> ::= H5T_TIME: not yet implemented</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><string> ::= H5T_STRING {</div>
|
|
<div class="line"> STRSIZE <strsize>;</div>
|
|
<div class="line"> STRPAD <strpad>;</div>
|
|
<div class="line"> CSET <cset>;</div>
|
|
<div class="line"> CTYPE <ctype>;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><strsize> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><strpad> ::= H5T_STR_NULLTERM | H5T_STR_NULLPAD | H5T_STR_SPACEPAD</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><cset> ::= H5T_CSET_ASCII | H5T_CSET_UTF8</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><ctype> ::= H5T_C_S1 | H5T_FORTRAN_S1</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><bitfield> ::= H5T_STD_B8BE | H5T_STD_B8LE |</div>
|
|
<div class="line"> H5T_STD_B16BE | H5T_STD_B16LE |</div>
|
|
<div class="line"> H5T_STD_B32BE | H5T_STD_B32LE |</div>
|
|
<div class="line"> H5T_STD_B64BE | H5T_STD_B64LE</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><opaque> ::= H5T_OPAQUE {</div>
|
|
<div class="line"> OPAQUE_TAG <identifier>;</div>
|
|
<div class="line"> OPAQUE_SIZE <int_value>;opt</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><reference> ::= H5T_REFERENCE { <ref_type> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><ref_type> ::= H5T_STD_REF_OBJECT | H5T_STD_REF_DSETREG | H5T_STD_REF | UNDEFINED</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><compound_type> ::= H5T_COMPOUND {</div>
|
|
<div class="line"> <member_type_def>+</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><member_type_def> ::= <datatype> <field_name>;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><field_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><variable_length_type> ::= H5T_VLEN { <datatype> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><array_type> ::= H5T_ARRAY { <dim_sizes> <datatype> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dim_sizes> ::= '['<dimsize>']' | '['<dimsize>']'<dim_sizes></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dimsize> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><attribute> ::= ATTRIBUTE <attr_name> {</div>
|
|
<div class="line"> <dataset_type></div>
|
|
<div class="line"> <dataset_space></div>
|
|
<div class="line"> <data>opt</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><attr_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataset_type> ::= DATATYPE <path_name> | <datatype></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><enum> ::= H5T_ENUM {</div>
|
|
<div class="line"> <enum_base_type> <enum_def>+</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><enum_base_type> ::= <integer></div>
|
|
<div class="line">// Currently enums can only hold integer type data, but they may be expanded</div>
|
|
<div class="line">// in the future to hold any datatype</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><enum_def> ::= <enum_symbol> <enum_val>;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><enum_symbol> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><enum_val> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><path_name> ::= <path_part>+</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><path_part> ::= /<identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataspace> ::= <scalar_space> | <simple_space> | <complex_space> | <null_space></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><null_space> ::= NULL</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><scalar_space> ::= SCALAR</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><simple_space> ::= SIMPLE { <current_dims> / <max_dims> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><complex_space> ::= COMPLEX { <complex_space_definition> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataset_space> ::= DATASPACE <path_name> | <dataspace></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><current_dims> ::= <dims></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><max_dims> ::= '(' <max_dim_list> ')'</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><max_dim_list> ::= <max_dim> | <max_dim>, <max_dim_list></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><max_dim> ::= <int_value> | H5S_UNLIMITED</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data> ::= <subset> | <data_values></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data_values> ::= DATA {</div>
|
|
<div class="line"> <scalar_space_data> | <simple_space_data></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><scalar_space_data> ::= <any_element></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><any_element> ::= <atomic_element> | <compound_element> |</div>
|
|
<div class="line"> <variable_length_element> | <array_element></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><any_data_seq> ::= <any_element> | <any_element>, <any_data_seq></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><atomic_element> :: = <integer_data> | <float_data> | <time_data> |</div>
|
|
<div class="line"> <string_data> | <bitfield_data> | <opaque_data> |</div>
|
|
<div class="line"> <enum_data> | <reference_data></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><subset> ::= SUBSET {</div>
|
|
<div class="line"> <start>;</div>
|
|
<div class="line"> <stride>;</div>
|
|
<div class="line"> <count>;</div>
|
|
<div class="line"> <block>;</div>
|
|
<div class="line"> DATA {</div>
|
|
<div class="line"> <simple_space_data></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><start> ::= START (<coor_list>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><stride> ::= STRIDE (<pos_list>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><count> ::= COUNT (<max_dim_list>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><block> ::= BLOCK (<max_dim_list>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><coor_list> ::= <coor_data>, <coor_list> | <coor_data></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><coor_data> ::= <integer_data> | H5S_UNLIMITED</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><integer_data> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><float_data> ::= a floating point number</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><time_data> ::= DATA{ not yet implemented.}</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><string_data> ::= a string</div>
|
|
<div class="line">// A string is enclosed in double quotes.</div>
|
|
<div class="line">// If a string is displayed on more than one line, string concatenate</div>
|
|
<div class="line">// operator '//'is used.</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><bitfield_data> ::= <hex_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><opaque_data> ::= <hex_value>:<hex_value> | <hex_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><enum_data> ::= <enum_symbol></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><reference_data> ::= <object_ref_data> | <data_region_data> | <attribute_data> | NULL</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><object_ref_data> ::= <object_type> <object_ref></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><object_type> ::= ATTRIBUTE | DATASET | GROUP | DATATYPE</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><object_ref> ::= <object_id></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><object_id> ::= <path_name> | OBJECTID { <object_num> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><object_num> ::= <int_value>:<int_value> | <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><attribute_data> ::= ATTRIBUTE <attr_name>opt</div>
|
|
<div class="line"> <data>opt</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data_region_data> ::= DATASET <dataset_name> {</div>
|
|
<div class="line"> <data_region_type>opt <data_region_data_list></div>
|
|
<div class="line"> <dataset_type>opt <dataset_space>opt</div>
|
|
<div class="line"> <data>opt</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data_region_type> ::= REGION_TYPE <data_region_data_type></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data_region_data_type> ::= POINT | BLOCK</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data_region_data_list> ::= <data_region_data_info>, <data_region_data_list> |</div>
|
|
<div class="line"> <data_region_data_info></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><data_region_data_info> ::= <region_info> | <point_info></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><region_info> ::= (<lower_region_vals>)-(<upper_region_vals>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><lower_region_vals> ::= <lower_bound>, <lower_region_vals> | <lower_bound></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><upper_region_vals> ::= <upper_bound>, <upper_region_vals> | <upper_bound></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><lower_bound> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><upper_bound> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><point_info> ::= (<point_vals>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><point_vals> ::= <int_value> | <int_value>, <point_vals></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><compound_element> ::= { <any_data_seq> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><atomic_simple_data> :: = <atomic_element>, <atomic_simple_data> |</div>
|
|
<div class="line"> <atomic_element></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><simple_space_data> :: = <any_data_seq></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><variable_length_element> ::= ( <any_data_seq> )</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><array_element> ::= '[' <any_data_seq> ']'</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><named_datatype> ::= DATATYPE <type_name> { <datatype> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><type_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><hardlink> ::= HARDLINK <path_name></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><group> ::= GROUP <group_name> { <hardlink> | <group_info> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><group_comment> ::= COMMENT <string_data></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><group_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><group_info> ::= <object_id>opt <group_comment>opt <group_attribute>*</div>
|
|
<div class="line"> <group_member>*</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><group_attribute> ::= <attribute></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><group_member> ::= <named_datatype> | <group> | <dataset> |</div>
|
|
<div class="line"> <softlink> | <external_link></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataset> ::= DATASET <dataset_name> { <hardlink> | <dataset_info> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataset_info> ::= <dataset_type></div>
|
|
<div class="line"> <dataset_space></div>
|
|
<div class="line"> <dcpl_info>opt</div>
|
|
<div class="line"> <dataset_attribute>* <object_id>opt</div>
|
|
<div class="line"> <data>opt</div>
|
|
<div class="line">// Tokens above can be in any order as long as <data> is</div>
|
|
<div class="line">// after <dataset_type> and <dataset_space>.</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dcpl_info> ::= <storagelayout></div>
|
|
<div class="line"> <compression_filters></div>
|
|
<div class="line"> <fillvalue></div>
|
|
<div class="line"> <allocationtime></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataset_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><storagelayout> :: = STORAGE_LAYOUT {</div>
|
|
<div class="line"> <contiguous_layout> | <chunked_layout> |</div>
|
|
<div class="line"> <compact_layout> | <virtual_layout></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><contiguous_layout> ::= CONTIGUOUS</div>
|
|
<div class="line"> <internal_layout> | <external_layout></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><chunked_layout> ::= CHUNKED <dims></div>
|
|
<div class="line"> <filter_ratio>opt</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><compact_layout> ::= COMPACT</div>
|
|
<div class="line"> <size></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><internal_layout> ::= <size></div>
|
|
<div class="line"> <offset></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><external_layout> ::= EXTERNAL {</div>
|
|
<div class="line"> <external_file>+</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><virtual_layout> ::= <vmaps>*opt</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><vmaps> ::= MAPPING <int_value> {</div>
|
|
<div class="line"> <virtual_map></div>
|
|
<div class="line"> <source_map></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><virtual_map> ::= VIRTUAL {</div>
|
|
<div class="line"> <vmaps_selection></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><source_map> ::= SOURCE {</div>
|
|
<div class="line"> FILE <file_name></div>
|
|
<div class="line"> DATASET <dataset_name></div>
|
|
<div class="line"> <vmaps_selection></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><vmaps_selection> ::= <regular_hyperslab> | <irregular_hyperslab> |</div>
|
|
<div class="line"> <select_points> | <select_none> | <select_all></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><regular_hyperslab> ::= SELECTION REGULAR_HYPERSLAB {</div>
|
|
<div class="line"> <start></div>
|
|
<div class="line"> <stride></div>
|
|
<div class="line"> <count></div>
|
|
<div class="line"> <block></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><irregular_hyperslab> ::= SELECTION IRREGULAR_HYPERSLAB {</div>
|
|
<div class="line"> <region_info>+</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><select_points> ::= SELECTION POINT {</div>
|
|
<div class="line"> (<coor_list>)+</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><select_none> ::= SELECTION NONE</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><select_all> ::= SELECTION ALL</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dims> ::= (<dims_values>)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dims_values> ::= <int_value> | <int_value>, <dims_values></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><external_file> ::= FILENAME <file_name> <size> <offset></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><offset> ::= OFFSET <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><size> ::= SIZE <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_ratio> ::= <size> | <compressionratio></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><compressionratio> :: = <size> (<float_data>:1 COMPRESSION)</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><compression_filters> :: = FILTERS {</div>
|
|
<div class="line"> <filter_type>+ | NONE</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_type> :: = <filter_deflate> | <filter_shuffle> |</div>
|
|
<div class="line"> <filter_flecther> | <filter_szip> |</div>
|
|
<div class="line"> <filter_nbit> | <filter_scaleoffset> |</div>
|
|
<div class="line"> <filter_default></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_default> :: = <filter_user> {</div>
|
|
<div class="line"> FILTER_ID <int_value></div>
|
|
<div class="line"> <filter_comment>opt</div>
|
|
<div class="line"> <filter_params>opt</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_user> :: = USER_DEFINED_FILTER</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_deflate> :: = COMPRESSION DEFLATE { LEVEL <int_value> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_shuffle> :: = PREPROCESSING SHUFFLE</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_flecther> :: = CHECKSUM FLETCHER32</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_szip> :: = COMPRESSION SZIP {</div>
|
|
<div class="line"> PIXELS_PER_BLOCK <int_value></div>
|
|
<div class="line"> <filter_szip_mode>opt</div>
|
|
<div class="line"> <filter_szip_coding>opt</div>
|
|
<div class="line"> <filter_szip_order>opt</div>
|
|
<div class="line"> <filter_szip_header>opt</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_szip_mode> :: = MODE HARDWARE | K13</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_szip_coding> :: = CODING ENTROPY | NEAREST NEIGHBOUR</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_szip_order> :: = BYTE_ORDER LSB | MSB</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_szip_header> :: = HEADER RAW</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_nbit> :: = CHECKSUM NBIT</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_scaleoffset> :: = COMPRESSION SCALEOFFSET { MIN BITS <int_value> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_comment> :: = COMMENT <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><filter_params> :: = PARAMS { <int_value>* }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><fillvalue> ::= FILLVALUE {</div>
|
|
<div class="line"> FILL_TIME H5D_FILL_TIME_ALLOC | H5D_FILL_TIME_NEVER | H5D_FILL_TIME_IFSET</div>
|
|
<div class="line"> VALUE H5D_FILL_VALUE_UNDEFINED | H5D_FILL_VALUE_DEFAULT | <any_element></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><allocationtime> ::= ALLOCATION_TIME {</div>
|
|
<div class="line"> H5D_ALLOC_TIME_EARLY | H5D_ALLOC_TIME_INCR |</div>
|
|
<div class="line"> H5D_ALLOC_TIME_LATE</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><dataset_attribute> ::= <attribute></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><softlink> ::= SOFTLINK <softlink_name> {</div>
|
|
<div class="line"> LINKTARGET <target></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><softlink_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><target> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><external_link> ::= EXTERNAL_LINK <external_link_name> {</div>
|
|
<div class="line"> TARGETFILE <targetfile></div>
|
|
<div class="line"> TARGETPATH <targetpath> <targetobj>opt</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><external_link_name> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><user_defined_link> ::= USERDEFINED_LINK <external_link_name> {</div>
|
|
<div class="line"> LINKCLASS <user_link_type></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><user_link_type> ::= <int_value></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><targetfile> ::= <file_name></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><targetpath> ::= <identifier></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><targetobj> ::= <named_datatype> | <group> | <dataset></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><identifier> ::= "a string"</div>
|
|
<div class="line">// character '/' should be used with care.</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><pos_list> ::= <pos_int>, <pos_list> | <pos_int></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><int_value> ::= 0 | <pos_int></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><pos_int> ::= [1-9][0-9]*</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><hex_value> ::= 0x[0-F][0-F]+ | [0-F][0-F]+</div>
|
|
</div><!-- fragment --><h1 class="doxsection"><a class="anchor" id="example114"></a>
|
|
An Example of an HDF5 File in DDL</h1>
|
|
<div class="fragment"><div class="line">HDF5 "example.h5" {</div>
|
|
<div class="line">GROUP "/" {</div>
|
|
<div class="line"> ATTRIBUTE "attr1" {</div>
|
|
<div class="line"> DATATYPE H5T_STRING {</div>
|
|
<div class="line"> STRSIZE 17;</div>
|
|
<div class="line"> STRPAD H5T_STR_NULLTERM;</div>
|
|
<div class="line"> CSET H5T_CSET_ASCII;</div>
|
|
<div class="line"> CTYPE H5T_C_S1;</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> DATASPACE SCALAR</div>
|
|
<div class="line"> DATA {</div>
|
|
<div class="line"> "string attribute"</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> DATASET "dset1" {</div>
|
|
<div class="line"> DATATYPE H5T_STD_I32BE</div>
|
|
<div class="line"> DATASPACE SIMPLE { ( 10, 10 ) / ( 10, 10 ) }</div>
|
|
<div class="line"> DATA {</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,</div>
|
|
<div class="line"> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> DATASET "dset2" {</div>
|
|
<div class="line"> DATATYPE H5T_COMPOUND {</div>
|
|
<div class="line"> H5T_STD_I32BE "a";</div>
|
|
<div class="line"> H5T_IEEE_F32BE "b";</div>
|
|
<div class="line"> H5T_IEEE_F64BE "c";</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> DATASPACE SIMPLE { ( 5 ) / ( 5 ) }</div>
|
|
<div class="line"> DATA {</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> 1,</div>
|
|
<div class="line"> 0.1,</div>
|
|
<div class="line"> 0.01</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> 2,</div>
|
|
<div class="line"> 0.2,</div>
|
|
<div class="line"> 0.02</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> 3,</div>
|
|
<div class="line"> 0.3,</div>
|
|
<div class="line"> 0.03</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> 4,</div>
|
|
<div class="line"> 0.4,</div>
|
|
<div class="line"> 0.04</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> 5,</div>
|
|
<div class="line"> 0.5,</div>
|
|
<div class="line"> 0.05</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> GROUP "group1" {</div>
|
|
<div class="line"> COMMENT "This is a comment for group1";</div>
|
|
<div class="line"> DATASET "dset3" {</div>
|
|
<div class="line"> DATATYPE "/type1"</div>
|
|
<div class="line"> DATASPACE SIMPLE { ( 5 ) / ( 5 ) }</div>
|
|
<div class="line"> DATA {</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> [ 0, 1, 2, 3 ],</div>
|
|
<div class="line"> [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,</div>
|
|
<div class="line"> 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,</div>
|
|
<div class="line"> 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,</div>
|
|
<div class="line"> 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,</div>
|
|
<div class="line"> 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> [ 0, 1, 2, 3 ],</div>
|
|
<div class="line"> [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,</div>
|
|
<div class="line"> 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,</div>
|
|
<div class="line"> 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,</div>
|
|
<div class="line"> 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,</div>
|
|
<div class="line"> 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> [ 0, 1, 2, 3 ],</div>
|
|
<div class="line"> [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,</div>
|
|
<div class="line"> 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,</div>
|
|
<div class="line"> 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,</div>
|
|
<div class="line"> 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,</div>
|
|
<div class="line"> 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> [ 0, 1, 2, 3 ],</div>
|
|
<div class="line"> [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,</div>
|
|
<div class="line"> 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,</div>
|
|
<div class="line"> 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,</div>
|
|
<div class="line"> 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,</div>
|
|
<div class="line"> 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> [ 0, 1, 2, 3 ],</div>
|
|
<div class="line"> [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,</div>
|
|
<div class="line"> 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,</div>
|
|
<div class="line"> 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,</div>
|
|
<div class="line"> 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,</div>
|
|
<div class="line"> 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> DATASET "dset3" {</div>
|
|
<div class="line"> DATATYPE H5T_VLEN { H5T_STD_I32LE }</div>
|
|
<div class="line"> DATASPACE SIMPLE { ( 4 ) / ( 4 ) }</div>
|
|
<div class="line"> DATA {</div>
|
|
<div class="line"> (0), (10, 11), (20, 21, 22), (30, 31, 32, 33)</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> GROUP "group2" {</div>
|
|
<div class="line"> HARDLINK "/group1"</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> SOFTLINK "slink1" {</div>
|
|
<div class="line"> LINKTARGET "somevalue"</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> DATATYPE "type1" H5T_COMPOUND {</div>
|
|
<div class="line"> H5T_ARRAY { [4] H5T_STD_I32BE } "a";</div>
|
|
<div class="line"> H5T_ARRAY { [5][6] H5T_IEEE_F32BE } "b";</div>
|
|
<div class="line"> }</div>
|
|
<div class="line">}</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment --><hr />
|
|
<p> Navigate back: <a class="el" href="index.html" title="notitle">Main</a> / <a class="el" href="_s_p_e_c.html" title="Specifications">Specifications</a> </p>
|
|
</div></div><!-- contents -->
|
|
</div><!-- PageDoc -->
|
|
</div><!-- doc-content -->
|
|
<div id="page-nav" class="page-nav-panel">
|
|
<div id="page-nav-resize-handle"></div>
|
|
<div id="page-nav-tree">
|
|
<div id="page-nav-contents">
|
|
</div><!-- page-nav-contents -->
|
|
</div><!-- page-nav-tree -->
|
|
</div><!-- page-nav -->
|
|
</div><!-- container -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.16.1 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|