diff options
author | byrnHDF <byrnHDF@users.noreply.github.com> | 2023-06-26 19:22:17 (GMT) |
---|---|---|
committer | byrnHDF <byrnHDF@users.noreply.github.com> | 2023-06-26 19:22:17 (GMT) |
commit | d12e43bc201e15edffcdf94fe820aeae6ab44882 (patch) | |
tree | 90aa12006b20849b65b7bc8e3d4fe60a488f7247 /group___h5_l_a.html | |
parent | 4d49d1ee001bd4dff6b01e1830902bee22a19f3e (diff) | |
download | hdf5-d12e43bc201e15edffcdf94fe820aeae6ab44882.zip hdf5-d12e43bc201e15edffcdf94fe820aeae6ab44882.tar.gz hdf5-d12e43bc201e15edffcdf94fe820aeae6ab44882.tar.bz2 |
deploy: ab4d2aec9779b7a37747c95bd7b514417b299f73
Diffstat (limited to 'group___h5_l_a.html')
-rw-r--r-- | group___h5_l_a.html | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/group___h5_l_a.html b/group___h5_l_a.html new file mode 100644 index 0000000..426b10d --- /dev/null +++ b/group___h5_l_a.html @@ -0,0 +1,311 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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=9"/> +<meta name="generator" content="Doxygen 1.9.1"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>HDF5: Advanced Link Functions</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="resize.js"></script> +<script type="text/javascript" src="navtreedata.js"></script> +<script type="text/javascript" src="navtree.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"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(function() { init_search(); }); +/* @license-end */ +</script> +<link href="doxygen.css" rel="stylesheet" type="text/css" /> +<link href="hdf5doxy.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> +</head> +<body> +<div style="background:#FFDDDD;font-size:120%;text-align:center;margin:0;padding:5px">Please, help us to better serve our user community by answering the following short survey: <a href="https://www.hdfgroup.org/website-survey/">https://www.hdfgroup.org/website-survey/</a></div> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <td id="projectlogo"><img alt="Logo" src="HDFG-logo.png"/></td> + <td id="projectalign" style="padding-left: 0.5em;"> + <div id="projectname"><a href="https://www.hdfgroup.org">HDF5</a> +  <span id="projectnumber">1.15.0.ab4d2ae</span> + </div> + <div id="projectbrief">API Reference</div> + </td> + <td> <div id="MSearchBox" class="MSearchBoxInactive"> + <span class="left"> + <img id="MSearchSelect" src="search/mag_sel.svg" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + alt=""/> + <input type="text" id="MSearchField" value="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()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a> + </span> + </div> +</td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.9.1 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +var searchBox = new SearchBox("searchBox", "search",false,'Search','.html'); +/* @license-end */ +</script> +</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"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group___h5_l_a.html',''); initResizable(); }); +/* @license-end */ +</script> +<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"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">Advanced Link Functions<div class="ingroups"><a class="el" href="group___h5_l.html">Links (H5L)</a></div></div> </div> +</div><!--header--> +<div class="contents"> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"> + <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for Advanced Link Functions:</div> +<div id="dynsection-0-summary" class="dynsummary" style="display:block;"> +</div> +<div id="dynsection-0-content" class="dyncontent" style="display:none;"> +<div class="center"><img src="group___h5_l_a.png" border="0" usemap="#agroup______h5__l__a" alt=""/></div> +<map name="agroup______h5__l__a" id="agroup______h5__l__a"> +<area shape="rect" href="group___h5_l.html" title=" " alt="" coords="5,5,100,31"/> +<area shape="rect" title=" " alt="" coords="148,5,331,31"/> +</map> +</div> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ga5073a814de9878bad53e1d3c900ea77f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f">H5Lregister</a> (const <a class="el" href="struct_h5_l__class__t.html">H5L_class_t</a> *cls)</td></tr> +<tr class="memdesc:ga5073a814de9878bad53e1d3c900ea77f"><td class="mdescLeft"> </td><td class="mdescRight">Registers a user-defined link class or changes behavior of an existing class. <a href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f">More...</a><br /></td></tr> +<tr class="separator:ga5073a814de9878bad53e1d3c900ea77f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga01ddc889d27306a96a7cd27b6084a5ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h5_l_a.html#ga01ddc889d27306a96a7cd27b6084a5ec">H5Lunregister</a> (<a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48">H5L_type_t</a> id)</td></tr> +<tr class="memdesc:ga01ddc889d27306a96a7cd27b6084a5ec"><td class="mdescLeft"> </td><td class="mdescRight">Unregisters a class of user-defined links. <a href="group___h5_l_a.html#ga01ddc889d27306a96a7cd27b6084a5ec">More...</a><br /></td></tr> +<tr class="separator:ga01ddc889d27306a96a7cd27b6084a5ec"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga02c1cf38efea97d18e5e2f65df3f08a2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#aa8f6c28736dbd0f18388c67911d38aca">htri_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___h5_l_a.html#ga02c1cf38efea97d18e5e2f65df3f08a2">H5Lis_registered</a> (<a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48">H5L_type_t</a> id)</td></tr> +<tr class="memdesc:ga02c1cf38efea97d18e5e2f65df3f08a2"><td class="mdescLeft"> </td><td class="mdescRight">Determines whether a class of user-defined links is registered. <a href="group___h5_l_a.html#ga02c1cf38efea97d18e5e2f65df3f08a2">More...</a><br /></td></tr> +<tr class="separator:ga02c1cf38efea97d18e5e2f65df3f08a2"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<h2 class="groupheader">Function Documentation</h2> +<a id="ga02c1cf38efea97d18e5e2f65df3f08a2"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga02c1cf38efea97d18e5e2f65df3f08a2">◆ </a></span>H5Lis_registered()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="_h5public_8h.html#aa8f6c28736dbd0f18388c67911d38aca">htri_t</a> H5Lis_registered </td> + <td>(</td> + <td class="paramtype"><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48">H5L_type_t</a> </td> + <td class="paramname"><em>id</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Determines whether a class of user-defined links is registered. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>User-defined link class identifier</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Returns zero (false), a positive (true) or a negative (failure) value.</dd></dl> +<p><a class="el" href="group___h5_l_a.html#ga02c1cf38efea97d18e5e2f65df3f08a2" title="Determines whether a class of user-defined links is registered.">H5Lis_registered()</a> tests whether a user-defined link class is currently registered, either by the HDF5 library or by the user through the use of <a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f" title="Registers a user-defined link class or changes behavior of an existing class.">H5Lregister()</a>.</p> +<dl class="section note"><dt>Note</dt><dd>A link class must be registered to create new links of that type or to traverse existing links of that type.</dd></dl> +<dl class="section since"><dt>Since</dt><dd>1.8.0 </dd></dl> + +</div> +</div> +<a id="ga5073a814de9878bad53e1d3c900ea77f"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga5073a814de9878bad53e1d3c900ea77f">◆ </a></span>H5Lregister()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Lregister </td> + <td>(</td> + <td class="paramtype">const <a class="el" href="struct_h5_l__class__t.html">H5L_class_t</a> * </td> + <td class="paramname"><em>cls</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Registers a user-defined link class or changes behavior of an existing class. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">cls</td><td>Pointer to a buffer containing the struct describing the user-defined link class</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl> +<p><a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f" title="Registers a user-defined link class or changes behavior of an existing class.">H5Lregister()</a> registers a class of user-defined links, or changes the behavior of an existing class.</p> +<p><code>cls</code> is a pointer to a buffer containing a copy of the <a class="el" href="struct_h5_l__class__t.html" title="Link prototype.">H5L_class_t</a> struct. This struct is defined in <a class="el" href="_h5_lpublic_8h.html">H5Lpublic.h</a> as follows: </p><div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div> +<div class="line"> <span class="keywordtype">int</span> version; </div> +<div class="line"> <a class="code" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48">H5L_type_t</a> id; </div> +<div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span> *comment; </div> +<div class="line"> <a class="code" href="_h5_ldevelop_8h.html#a35f5eeac9ed28bfcc94d5037cac5af4a">H5L_create_func_t</a> create_func; </div> +<div class="line"> <a class="code" href="_h5_ldevelop_8h.html#a923e0abe07eacf3101ba6e717665edf1">H5L_move_func_t</a> move_func; </div> +<div class="line"> <a class="code" href="_h5_ldevelop_8h.html#a5800df80f7709b30fa99dfc5166468e5">H5L_copy_func_t</a> copy_func; </div> +<div class="line"> <a class="code" href="_h5_ldevelop_8h.html#a7daba3925a1b3b28a1944788d2a88597">H5L_traverse_func_t</a> trav_func; </div> +<div class="line"> <a class="code" href="_h5_ldevelop_8h.html#a4ef5c91e382760e74fb95a480f0773ca">H5L_delete_func_t</a> del_func; </div> +<div class="line"> <a class="code" href="_h5_ldevelop_8h.html#a4ed3f3e89fe170d547cefd7d68549632">H5L_query_func_t</a> query_func; </div> +<div class="line">} <a class="code" href="struct_h5_l__class__t.html">H5L_class_t</a>;</div> +<div class="ttc" id="a_h5_ldevelop_8h_html_a35f5eeac9ed28bfcc94d5037cac5af4a"><div class="ttname"><a href="_h5_ldevelop_8h.html#a35f5eeac9ed28bfcc94d5037cac5af4a">H5L_create_func_t</a></div><div class="ttdeci">herr_t(* H5L_create_func_t)(const char *link_name, hid_t loc_group, const void *lnkdata, size_t lnkdata_size, hid_t lcpl_id)</div><div class="ttdoc">Link creation callback.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:55</div></div> +<div class="ttc" id="a_h5_ldevelop_8h_html_a4ed3f3e89fe170d547cefd7d68549632"><div class="ttname"><a href="_h5_ldevelop_8h.html#a4ed3f3e89fe170d547cefd7d68549632">H5L_query_func_t</a></div><div class="ttdeci">ssize_t(* H5L_query_func_t)(const char *link_name, const void *lnkdata, size_t lnkdata_size, void *buf, size_t buf_size)</div><div class="ttdoc">Callback for querying the link.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:82</div></div> +<div class="ttc" id="a_h5_ldevelop_8h_html_a4ef5c91e382760e74fb95a480f0773ca"><div class="ttname"><a href="_h5_ldevelop_8h.html#a4ef5c91e382760e74fb95a480f0773ca">H5L_delete_func_t</a></div><div class="ttdeci">herr_t(* H5L_delete_func_t)(const char *link_name, hid_t file, const void *lnkdata, size_t lnkdata_size)</div><div class="ttdoc">Callback for link deletion.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:75</div></div> +<div class="ttc" id="a_h5_ldevelop_8h_html_a5800df80f7709b30fa99dfc5166468e5"><div class="ttname"><a href="_h5_ldevelop_8h.html#a5800df80f7709b30fa99dfc5166468e5">H5L_copy_func_t</a></div><div class="ttdeci">herr_t(* H5L_copy_func_t)(const char *new_name, hid_t new_loc, const void *lnkdata, size_t lnkdata_size)</div><div class="ttdoc">Callback for link copy.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:65</div></div> +<div class="ttc" id="a_h5_ldevelop_8h_html_a7daba3925a1b3b28a1944788d2a88597"><div class="ttname"><a href="_h5_ldevelop_8h.html#a7daba3925a1b3b28a1944788d2a88597">H5L_traverse_func_t</a></div><div class="ttdeci">hid_t(* H5L_traverse_func_t)(const char *link_name, hid_t cur_group, const void *lnkdata, size_t lnkdata_size, hid_t lapl_id, hid_t dxpl_id)</div><div class="ttdoc">Callback during link traversal.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:70</div></div> +<div class="ttc" id="a_h5_ldevelop_8h_html_a923e0abe07eacf3101ba6e717665edf1"><div class="ttname"><a href="_h5_ldevelop_8h.html#a923e0abe07eacf3101ba6e717665edf1">H5L_move_func_t</a></div><div class="ttdeci">herr_t(* H5L_move_func_t)(const char *new_name, hid_t new_loc, const void *lnkdata, size_t lnkdata_size)</div><div class="ttdoc">Callback for link move.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:60</div></div> +<div class="ttc" id="a_h5_lpublic_8h_html_a1e3c5d37c60e7a59b0179e26a4094a48"><div class="ttname"><a href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48">H5L_type_t</a></div><div class="ttdeci">H5L_type_t</div><div class="ttdoc">Link class types.</div><div class="ttdef"><b>Definition:</b> H5Lpublic.h:63</div></div> +<div class="ttc" id="astruct_h5_l__class__t_html"><div class="ttname"><a href="struct_h5_l__class__t.html">H5L_class_t</a></div><div class="ttdoc">Link prototype.</div><div class="ttdef"><b>Definition:</b> H5Ldevelop.h:93</div></div> +</div><!-- fragment --><p> The class definition passed with <code>cls</code> must include at least the following: </p><ul> +<li>An <a class="el" href="struct_h5_l__class__t.html" title="Link prototype.">H5L_class_t</a> version (which should be <a class="el" href="_h5_ldevelop_8h.html#ac4ef431ffac7939c7d37a2e55e49cd63" title="Current version of the H5L_class_t struct.">H5L_LINK_CLASS_T_VERS</a>) </li> +<li>A link class identifier, <code>class_id</code> </li> +<li>A traversal function, <code>trav_func</code> </li> +</ul> +<p>Remaining <code>struct</code> members are optional and may be passed as NULL.</p> +<p>The link class passed in <code>class_id</code> must be in the user-definable range between <a class="el" href="_h5_lpublic_8h.html#afd6fe1db1c142b14a7f879b8d277aa3f" title="Link ids at or above this value are "user-defined" link types.">H5L_TYPE_UD_MIN</a> and <a class="el" href="_h5_lpublic_8h.html#a6f9109ae61b6bd1b6668237cce13c75f" title="Maximum link id value for "user-defined" link types.">H5L_TYPE_UD_MAX</a> (see the table below) and will override any existing link class with that identifier.</p> +<p>As distributed, valid values of <code>class_id</code> used in HDF5 include the following (defined in <a class="el" href="_h5_lpublic_8h.html">H5Lpublic.h</a>): </p><table class="doxtable"> +<tr> +<td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48ab90f13082490fcd293a228b2785489e3">H5L_TYPE_HARD</a></td><td>Hard link</td></tr> +<tr> +<td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a38eb885df3f43f179b973f576fe996ed">H5L_TYPE_SOFT</a></td><td>Soft link</td></tr> +<tr> +<td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a1b8b636539eab03587c22735ec84ea06">H5L_TYPE_EXTERNAL</a></td><td>External link</td></tr> +<tr> +<td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a4a582d434de3ee2c583384c4d3a3273d">H5L_TYPE_ERROR</a></td><td>Error</td></tr> +</table> +<p>The hard and soft link class identifiers cannot be modified or reassigned, but the external link class is implemented as an example in the user-definable link class identifier range. <a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f" title="Registers a user-defined link class or changes behavior of an existing class.">H5Lregister()</a> is used to register additional link classes. It could also be used to modify the behavior of the external link class, though that is not recommended.</p> +<p>The following table summarizes existing link types and values and the reserved and user-definable link class identifier value ranges. </p><table class="doxtable"> +<tr> +<th>Link class identifier or Value range </th><th>Description </th><th>Link class or label </th></tr> +<tr> +<td>0 to 63 </td><td>Reserved range </td><td></td></tr> +<tr> +<td>64 to 255 </td><td>User-definable range </td><td></td></tr> +<tr> +<td>64 </td><td>Minimum user-defined value </td><td><a class="el" href="_h5_lpublic_8h.html#afd6fe1db1c142b14a7f879b8d277aa3f" title="Link ids at or above this value are "user-defined" link types.">H5L_TYPE_UD_MIN</a> </td></tr> +<tr> +<td>64 </td><td>External link </td><td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a1b8b636539eab03587c22735ec84ea06">H5L_TYPE_EXTERNAL</a> </td></tr> +<tr> +<td>255 </td><td>Maximum user-defined value </td><td><a class="el" href="_h5_lpublic_8h.html#a6f9109ae61b6bd1b6668237cce13c75f" title="Maximum link id value for "user-defined" link types.">H5L_TYPE_UD_MAX</a> </td></tr> +<tr> +<td>255 </td><td>Maximum value </td><td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a810ce4b5dddcd41521557af0273dd5cd">H5L_TYPE_MAX</a> </td></tr> +<tr> +<td>-1 </td><td>Error </td><td><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a4a582d434de3ee2c583384c4d3a3273d">H5L_TYPE_ERROR</a> </td></tr> +</table> +<p>Note that HDF5 internally registers user-defined link classes only by the numeric value of the link class identifier. An application, on the other hand, will generally use a name for a user-defined class, if for no other purpose than as a variable name. Assume, for example, that a complex link type is registered with the link class identifier 73 and that the code includes the following assignment: </p><div class="fragment"><div class="line">H5L_TYPE_COMPLEX_A = 73</div> +</div><!-- fragment --><p> The application can refer to the link class with a term, <code>H5L_TYPE_COMPLEX_A</code>, that conveys meaning to a human reviewing the code, while HDF5 recognizes it by the more cryptic numeric identifier, 73.</p> +<dl class="section attention"><dt>Attention</dt><dd>Important details and considerations include the following: <ul> +<li>If you plan to distribute files or software with a user-defined link class, please contact the Help Desk at The HDF Group to help prevent collisions between <code>class_id</code> values. See below. </li> +<li>As distributed with HDF5, the external link class is implemented as an example of a user-defined link class with <a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a1b8b636539eab03587c22735ec84ea06">H5L_TYPE_EXTERNAL</a> equal to <a class="el" href="_h5_lpublic_8h.html#afd6fe1db1c142b14a7f879b8d277aa3f" title="Link ids at or above this value are "user-defined" link types.">H5L_TYPE_UD_MIN</a>. <code>class_id</code> in the <a class="el" href="struct_h5_l__class__t.html" title="Link prototype.">H5L_class_t</a> <code>struct</code> must not equal <a class="el" href="_h5_lpublic_8h.html#afd6fe1db1c142b14a7f879b8d277aa3f" title="Link ids at or above this value are "user-defined" link types.">H5L_TYPE_UD_MIN</a> unless you intend to overwrite or modify the behavior of external links. </li> +<li><a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f" title="Registers a user-defined link class or changes behavior of an existing class.">H5Lregister()</a> can be used only with link class identifiers in the user-definable range (see table above). </li> +<li>The hard and soft links defined by the HDF5 library, <a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48ab90f13082490fcd293a228b2785489e3">H5L_TYPE_HARD</a> and <a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a38eb885df3f43f179b973f576fe996ed">H5L_TYPE_SOFT</a>, reside in the reserved range below <a class="el" href="_h5_lpublic_8h.html#afd6fe1db1c142b14a7f879b8d277aa3f" title="Link ids at or above this value are "user-defined" link types.">H5L_TYPE_UD_MIN</a> and cannot be redefined or modified. </li> +<li><a class="el" href="group___h5_l_a.html#ga02c1cf38efea97d18e5e2f65df3f08a2" title="Determines whether a class of user-defined links is registered.">H5Lis_registered()</a> can be used to determine whether a desired link class identifier is available. <em>Note that this function will tell you only whether the link class identifier has been registered with the installed copy of HDF5; it cannot tell you whether the link class has been registered with The HDF Group.</em> </li> +<li><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a810ce4b5dddcd41521557af0273dd5cd">H5L_TYPE_MAX</a> is the maximum allowed value for a link type identifier. </li> +<li><a class="el" href="_h5_lpublic_8h.html#afd6fe1db1c142b14a7f879b8d277aa3f" title="Link ids at or above this value are "user-defined" link types.">H5L_TYPE_UD_MIN</a> equals <a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a1b8b636539eab03587c22735ec84ea06">H5L_TYPE_EXTERNAL</a>. </li> +<li><a class="el" href="_h5_lpublic_8h.html#a6f9109ae61b6bd1b6668237cce13c75f" title="Maximum link id value for "user-defined" link types.">H5L_TYPE_UD_MAX</a> equals <a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a810ce4b5dddcd41521557af0273dd5cd">H5L_TYPE_MAX</a>. </li> +<li><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48a4a582d434de3ee2c583384c4d3a3273d">H5L_TYPE_ERROR</a> indicates that an error has occurred.</li> +</ul> +</dd></dl> +<dl class="section note"><dt>Note</dt><dd><b>Registration with The HDF Group:</b><br /> + There are sometimes reasons to take a broader approach to registering a user-defined link class than just invoking <a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f" title="Registers a user-defined link class or changes behavior of an existing class.">H5Lregister()</a>. For example: <ul> +<li>A user-defined link class is intended for use across an organization, among collaborators, or across a community of users. </li> +<li>An application or library overlying HDF5 invokes a user-defined link class that must be shipped with the software. </li> +<li>Files are distributed that make use of a user-defined link class. </li> +<li>Or simply, a specific user-defined link class is thought to be widely useful.</li> +</ul> +In such cases, you are encouraged to register that link class with The HDF Group's Helpdesk. The HDF Group maintains a registry of known user-defined link classes and tracks the selected link class identifiers. This registry is intended to reduce the risk of collisions between <code>class_id</code> values and to help coordinate the use of specialized link classes.</dd></dl> +<dl class="section since"><dt>Since</dt><dd>1.8.0 </dd></dl> + +</div> +</div> +<a id="ga01ddc889d27306a96a7cd27b6084a5ec"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga01ddc889d27306a96a7cd27b6084a5ec">◆ </a></span>H5Lunregister()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Lunregister </td> + <td>(</td> + <td class="paramtype"><a class="el" href="_h5_lpublic_8h.html#a1e3c5d37c60e7a59b0179e26a4094a48">H5L_type_t</a> </td> + <td class="paramname"><em>id</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Unregisters a class of user-defined links. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>User-defined link class identifier</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl> +<p><a class="el" href="group___h5_l_a.html#ga01ddc889d27306a96a7cd27b6084a5ec" title="Unregisters a class of user-defined links.">H5Lunregister()</a> unregisters a class of user-defined links, preventing them from being traversed, queried, moved, etc.</p> +<dl class="section note"><dt>Note</dt><dd>A link class can be re-registered using <a class="el" href="group___h5_l_a.html#ga5073a814de9878bad53e1d3c900ea77f" title="Registers a user-defined link class or changes behavior of an existing class.">H5Lregister()</a>.</dd></dl> +<dl class="section since"><dt>Since</dt><dd>1.8.0 </dd></dl> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Mon Jun 26 2023 19:01:35 for HDF5 by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li> + </ul> +</div> +</body> +</html> |