summaryrefslogtreecommitdiffstats
path: root/c++/src/cpplus_RM/writedata_8cpp-example.html
diff options
context:
space:
mode:
Diffstat (limited to 'c++/src/cpplus_RM/writedata_8cpp-example.html')
-rw-r--r--c++/src/cpplus_RM/writedata_8cpp-example.html429
1 files changed, 429 insertions, 0 deletions
diff --git a/c++/src/cpplus_RM/writedata_8cpp-example.html b/c++/src/cpplus_RM/writedata_8cpp-example.html
new file mode 100644
index 0000000..ba21097
--- /dev/null
+++ b/c++/src/cpplus_RM/writedata_8cpp-example.html
@@ -0,0 +1,429 @@
+<!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.8.5"/>
+<title>HDF5 C++ API: writedata.cpp</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="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</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 style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="hdf_logo.jpg"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">HDF5 C++ API
+ &#160;<span id="projectnumber">1.8.13</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.5 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ 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.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></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="headertitle">
+<div class="title">writedata.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<dl class="section user"><dt></dt><dd>This example shows how to write datasets.</dd></dl>
+<div class="fragment"><div class="line"><span class="comment">/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *</span></div>
+<div class="line"><span class="comment"> * Copyright by The HDF Group. *</span></div>
+<div class="line"><span class="comment"> * Copyright by the Board of Trustees of the University of Illinois. *</span></div>
+<div class="line"><span class="comment"> * All rights reserved. *</span></div>
+<div class="line"><span class="comment"> * *</span></div>
+<div class="line"><span class="comment"> * This file is part of HDF5. The full HDF5 copyright notice, including *</span></div>
+<div class="line"><span class="comment"> * terms governing use, modification, and redistribution, is contained in *</span></div>
+<div class="line"><span class="comment"> * the files COPYING and Copyright.html. COPYING can be found at the root *</span></div>
+<div class="line"><span class="comment"> * of the source code distribution tree; Copyright.html can be found at the *</span></div>
+<div class="line"><span class="comment"> * root level of an installed copy of the electronic HDF5 document set and *</span></div>
+<div class="line"><span class="comment"> * is linked from the top-level documents page. It can also be found at *</span></div>
+<div class="line"><span class="comment"> * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *</span></div>
+<div class="line"><span class="comment"> * access to either file, you may request a copy from help@hdfgroup.org. *</span></div>
+<div class="line"><span class="comment"> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * This program shows how the select_hyperslab and select_elements</span></div>
+<div class="line"><span class="comment"> * functions are used to write selected data from memory to the file.</span></div>
+<div class="line"><span class="comment"> * Program takes 48 elements from the linear buffer and writes them into</span></div>
+<div class="line"><span class="comment"> * the matrix using 3x2 blocks, (4,3) stride and (2,4) count.</span></div>
+<div class="line"><span class="comment"> * Then four elements of the matrix are overwritten with the new values and</span></div>
+<div class="line"><span class="comment"> * file is closed. Program reopens the file and reads and displays the result.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#ifdef OLD_HEADER_FILENAME</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#include &lt;iostream.h&gt;</span></div>
+<div class="line"><span class="preprocessor">#else</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#ifndef H5_NO_NAMESPACE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#ifndef H5_NO_STD</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="keyword">using</span> std::cout;</div>
+<div class="line"> <span class="keyword">using</span> std::endl;</div>
+<div class="line"><span class="preprocessor">#endif // H5_NO_STD</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="preprocessor">#include &quot;H5Cpp.h&quot;</span></div>
+<div class="line"></div>
+<div class="line"><span class="preprocessor">#ifndef H5_NO_NAMESPACE</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="keyword">using namespace </span>H5;</div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span></div>
+<div class="line"><span class="keyword">const</span> H5std_string FILE_NAME( <span class="stringliteral">&quot;Select.h5&quot;</span> );</div>
+<div class="line"><span class="keyword">const</span> H5std_string DATASET_NAME( <span class="stringliteral">&quot;Matrix in file&quot;</span> );</div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE1_RANK = 1; <span class="comment">// Rank of the first dataset in memory</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE1_DIM = 50; <span class="comment">// Dataset size in memory</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE2_RANK = 1; <span class="comment">// Rank of the second dataset in memory</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE2_DIM = 4; <span class="comment">// Dataset size in memory</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> FSPACE_RANK = 2; <span class="comment">// Dataset rank as it is stored in the file</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> FSPACE_DIM1 = 8; <span class="comment">// Dimension sizes of the dataset as it is</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> FSPACE_DIM2 = 12; <span class="comment">// stored in the file</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE_RANK = 2; <span class="comment">// Rank of the first dataset in memory</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE_DIM1 = 8; <span class="comment">// We will read dataset back from the file</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> MSPACE_DIM2 = 9; <span class="comment">// to the dataset in memory with these</span></div>
+<div class="line"> <span class="comment">// dataspace parameters</span></div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> NPOINTS = 4; <span class="comment">// Number of points that will be selected</span></div>
+<div class="line"> <span class="comment">// and overwritten</span></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>)</div>
+<div class="line">{</div>
+<div class="line"> <span class="keywordtype">int</span> i,j; <span class="comment">// loop indices */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Try block to detect exceptions raised by any of the calls inside it</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordflow">try</span></div>
+<div class="line"> {</div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Turn off the auto-printing when failure occurs so that we can</span></div>
+<div class="line"><span class="comment"> * handle the errors appropriately</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <a name="a0"></a><a class="code" href="class_h5_1_1_exception.html#ad49f16300979996c094c2e4f57868414">Exception::dontPrint</a>();</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create a file.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <a name="_a1"></a><a class="code" href="class_h5_1_1_h5_file.html">H5File</a>* file = <span class="keyword">new</span> <a class="code" href="class_h5_1_1_h5_file.html">H5File</a>( FILE_NAME, H5F_ACC_TRUNC );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create property list for a dataset and set up fill values.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordtype">int</span> fillvalue = 0; <span class="comment">/* Fill value for the dataset */</span></div>
+<div class="line"> <a name="_a2"></a><a class="code" href="class_h5_1_1_d_set_creat_prop_list.html">DSetCreatPropList</a> plist;</div>
+<div class="line"> plist.<a name="a3"></a><a class="code" href="class_h5_1_1_d_set_creat_prop_list.html#a06475f58202e5e96ca50e977174bb4ca">setFillValue</a>(<a name="a4"></a><a class="code" href="class_h5_1_1_pred_type.html#a3308bcd537696a8d728cd3b443f2fc7b">PredType::NATIVE_INT</a>, &amp;fillvalue);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create dataspace for the dataset in the file.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> hsize_t fdim[] = {FSPACE_DIM1, FSPACE_DIM2}; <span class="comment">// dim sizes of ds (on disk)</span></div>
+<div class="line"> <a name="_a5"></a><a class="code" href="class_h5_1_1_data_space.html">DataSpace</a> fspace( FSPACE_RANK, fdim );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create dataset and write it into the file.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <a name="_a6"></a><a class="code" href="class_h5_1_1_data_set.html">DataSet</a>* dataset = <span class="keyword">new</span> <a class="code" href="class_h5_1_1_data_set.html">DataSet</a>(file-&gt;<a name="a7"></a><a class="code" href="class_h5_1_1_common_f_g.html#a12a4af21ca0231d4f2c4008b12177bb1">createDataSet</a>(</div>
+<div class="line"> DATASET_NAME, <a class="code" href="class_h5_1_1_pred_type.html#a3308bcd537696a8d728cd3b443f2fc7b">PredType::NATIVE_INT</a>, fspace, plist));</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Select hyperslab for the dataset in the file, using 3x2 blocks,</span></div>
+<div class="line"><span class="comment"> * (4,3) stride and (2,4) count starting at the position (0,1).</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> hsize_t start[2]; <span class="comment">// Start of hyperslab</span></div>
+<div class="line"> hsize_t stride[2]; <span class="comment">// Stride of hyperslab</span></div>
+<div class="line"> hsize_t count[2]; <span class="comment">// Block count</span></div>
+<div class="line"> hsize_t block[2]; <span class="comment">// Block sizes</span></div>
+<div class="line"> start[0] = 0; start[1] = 1;</div>
+<div class="line"> stride[0] = 4; stride[1] = 3;</div>
+<div class="line"> count[0] = 2; count[1] = 4;</div>
+<div class="line"> block[0] = 3; block[1] = 2;</div>
+<div class="line"> fspace.selectHyperslab( H5S_SELECT_SET, count, start, stride, block);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create dataspace for the first dataset.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> hsize_t dim1[] = {MSPACE1_DIM}; <span class="comment">/* Dimension size of the first dataset</span></div>
+<div class="line"><span class="comment"> (in memory) */</span></div>
+<div class="line"> <a class="code" href="class_h5_1_1_data_space.html">DataSpace</a> mspace1( MSPACE1_RANK, dim1 );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Select hyperslab.</span></div>
+<div class="line"><span class="comment"> * We will use 48 elements of the vector buffer starting at the</span></div>
+<div class="line"><span class="comment"> * second element. Selected elements are 1 2 3 . . . 48</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> start[0] = 1;</div>
+<div class="line"> stride[0] = 1;</div>
+<div class="line"> count[0] = 48;</div>
+<div class="line"> block[0] = 1;</div>
+<div class="line"> mspace1.selectHyperslab( H5S_SELECT_SET, count, start, stride, block);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Write selection from the vector buffer to the dataset in the file.</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * File dataset should look like this:</span></div>
+<div class="line"><span class="comment"> * 0 1 2 0 3 4 0 5 6 0 7 8</span></div>
+<div class="line"><span class="comment"> * 0 9 10 0 11 12 0 13 14 0 15 16</span></div>
+<div class="line"><span class="comment"> * 0 17 18 0 19 20 0 21 22 0 23 24</span></div>
+<div class="line"><span class="comment"> * 0 0 0 0 0 0 0 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> * 0 25 26 0 27 28 0 29 30 0 31 32</span></div>
+<div class="line"><span class="comment"> * 0 33 34 0 35 36 0 37 38 0 39 40</span></div>
+<div class="line"><span class="comment"> * 0 41 42 0 43 44 0 45 46 0 47 48</span></div>
+<div class="line"><span class="comment"> * 0 0 0 0 0 0 0 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordtype">int</span> vector[MSPACE1_DIM]; <span class="comment">// vector buffer for dset</span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Buffer initialization.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> vector[0] = vector[MSPACE1_DIM - 1] = -1;</div>
+<div class="line"> <span class="keywordflow">for</span> (i = 1; i &lt; MSPACE1_DIM - 1; i++)</div>
+<div class="line"> vector[i] = i;</div>
+<div class="line"></div>
+<div class="line"> dataset-&gt;<a name="a8"></a><a class="code" href="class_h5_1_1_data_set.html#a3ce98e7a626fd32a23d1bcc41537326f">write</a>( vector, <a class="code" href="class_h5_1_1_pred_type.html#a3308bcd537696a8d728cd3b443f2fc7b">PredType::NATIVE_INT</a>, mspace1, fspace );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Reset the selection for the file dataspace fid.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> fspace.selectNone();</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create dataspace for the second dataset.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> hsize_t dim2[] = {MSPACE2_DIM}; <span class="comment">/* Dimension size of the second dataset</span></div>
+<div class="line"><span class="comment"> (in memory */</span></div>
+<div class="line"> <a class="code" href="class_h5_1_1_data_space.html">DataSpace</a> mspace2( MSPACE2_RANK, dim2 );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Select sequence of NPOINTS points in the file dataspace.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> hsize_t coord[NPOINTS][FSPACE_RANK]; <span class="comment">/* Array to store selected points</span></div>
+<div class="line"><span class="comment"> from the file dataspace */</span></div>
+<div class="line"> coord[0][0] = 0; coord[0][1] = 0;</div>
+<div class="line"> coord[1][0] = 3; coord[1][1] = 3;</div>
+<div class="line"> coord[2][0] = 3; coord[2][1] = 5;</div>
+<div class="line"> coord[3][0] = 5; coord[3][1] = 6;</div>
+<div class="line"></div>
+<div class="line"> fspace.selectElements( H5S_SELECT_SET, NPOINTS, (<span class="keyword">const</span> hsize_t *)coord);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Write new selection of points to the dataset.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordtype">int</span> values[] = {53, 59, 61, 67}; <span class="comment">/* New values to be written */</span></div>
+<div class="line"> dataset-&gt;<a class="code" href="class_h5_1_1_data_set.html#a3ce98e7a626fd32a23d1bcc41537326f">write</a>( values, <a class="code" href="class_h5_1_1_pred_type.html#a3308bcd537696a8d728cd3b443f2fc7b">PredType::NATIVE_INT</a>, mspace2, fspace );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * File dataset should look like this:</span></div>
+<div class="line"><span class="comment"> * 53 1 2 0 3 4 0 5 6 0 7 8</span></div>
+<div class="line"><span class="comment"> * 0 9 10 0 11 12 0 13 14 0 15 16</span></div>
+<div class="line"><span class="comment"> * 0 17 18 0 19 20 0 21 22 0 23 24</span></div>
+<div class="line"><span class="comment"> * 0 0 0 59 0 61 0 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> * 0 25 26 0 27 28 0 29 30 0 31 32</span></div>
+<div class="line"><span class="comment"> * 0 33 34 0 35 36 67 37 38 0 39 40</span></div>
+<div class="line"><span class="comment"> * 0 41 42 0 43 44 0 45 46 0 47 48</span></div>
+<div class="line"><span class="comment"> * 0 0 0 0 0 0 0 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Close the dataset and the file.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keyword">delete</span> dataset;</div>
+<div class="line"> <span class="keyword">delete</span> file;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Open the file.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> file = <span class="keyword">new</span> <a class="code" href="class_h5_1_1_h5_file.html">H5File</a>( FILE_NAME, H5F_ACC_RDONLY );</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Open the dataset.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> dataset = <span class="keyword">new</span> <a class="code" href="class_h5_1_1_data_set.html">DataSet</a>( file-&gt;<a name="a9"></a><a class="code" href="class_h5_1_1_common_f_g.html#a6a2557f173c32577db9feeb1b77d4e40">openDataSet</a>( DATASET_NAME ));</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Get dataspace of the dataset.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> fspace = dataset-&gt;<a name="a10"></a><a class="code" href="class_h5_1_1_data_set.html#a1f727ed91722af4630ba20b2d8b5b12d">getSpace</a>();</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Select first hyperslab for the dataset in the file. The following</span></div>
+<div class="line"><span class="comment"> * elements are selected:</span></div>
+<div class="line"><span class="comment"> * 10 0 11 12</span></div>
+<div class="line"><span class="comment"> * 18 0 19 20</span></div>
+<div class="line"><span class="comment"> * 0 59 0 61</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> start[0] = 1; start[1] = 2;</div>
+<div class="line"> block[0] = 1; block[1] = 1;</div>
+<div class="line"> stride[0] = 1; stride[1] = 1;</div>
+<div class="line"> count[0] = 3; count[1] = 4;</div>
+<div class="line"> fspace.selectHyperslab(H5S_SELECT_SET, count, start, stride, block);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Add second selected hyperslab to the selection.</span></div>
+<div class="line"><span class="comment"> * The following elements are selected:</span></div>
+<div class="line"><span class="comment"> * 19 20 0 21 22</span></div>
+<div class="line"><span class="comment"> * 0 61 0 0 0</span></div>
+<div class="line"><span class="comment"> * 27 28 0 29 30</span></div>
+<div class="line"><span class="comment"> * 35 36 67 37 38</span></div>
+<div class="line"><span class="comment"> * 43 44 0 45 46</span></div>
+<div class="line"><span class="comment"> * 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> * Note that two hyperslabs overlap. Common elements are:</span></div>
+<div class="line"><span class="comment"> * 19 20</span></div>
+<div class="line"><span class="comment"> * 0 61</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> start[0] = 2; start[1] = 4;</div>
+<div class="line"> block[0] = 1; block[1] = 1;</div>
+<div class="line"> stride[0] = 1; stride[1] = 1;</div>
+<div class="line"> count[0] = 6; count[1] = 5;</div>
+<div class="line"> fspace.selectHyperslab(H5S_SELECT_OR, count, start, stride, block);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Create memory dataspace.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> hsize_t mdim[] = {MSPACE_DIM1, MSPACE_DIM2}; <span class="comment">/* Dimension sizes of the</span></div>
+<div class="line"><span class="comment"> dataset in memory when we</span></div>
+<div class="line"><span class="comment"> read selection from the</span></div>
+<div class="line"><span class="comment"> dataset on the disk */</span></div>
+<div class="line"> <a class="code" href="class_h5_1_1_data_space.html">DataSpace</a> mspace(MSPACE_RANK, mdim);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Select two hyperslabs in memory. Hyperslabs has the same</span></div>
+<div class="line"><span class="comment"> * size and shape as the selected hyperslabs for the file dataspace.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> start[0] = 0; start[1] = 0;</div>
+<div class="line"> block[0] = 1; block[1] = 1;</div>
+<div class="line"> stride[0] = 1; stride[1] = 1;</div>
+<div class="line"> count[0] = 3; count[1] = 4;</div>
+<div class="line"> mspace.selectHyperslab(H5S_SELECT_SET, count, start, stride, block);</div>
+<div class="line"> start[0] = 1; start[1] = 2;</div>
+<div class="line"> block[0] = 1; block[1] = 1;</div>
+<div class="line"> stride[0] = 1; stride[1] = 1;</div>
+<div class="line"> count[0] = 6; count[1] = 5;</div>
+<div class="line"> mspace.selectHyperslab(H5S_SELECT_OR, count, start, stride, block);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Initialize data buffer.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordtype">int</span> matrix_out[MSPACE_DIM1][MSPACE_DIM2];</div>
+<div class="line"> <span class="keywordflow">for</span> (i = 0; i &lt; MSPACE_DIM1; i++)</div>
+<div class="line"> <span class="keywordflow">for</span> (j = 0; j &lt; MSPACE_DIM2; j++)</div>
+<div class="line"> matrix_out[i][j] = 0;</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Read data back to the buffer matrix.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> dataset-&gt;<a name="a11"></a><a class="code" href="class_h5_1_1_data_set.html#a2f0278a519122419ae9981666277c9bb">read</a>(matrix_out, <a class="code" href="class_h5_1_1_pred_type.html#a3308bcd537696a8d728cd3b443f2fc7b">PredType::NATIVE_INT</a>, mspace, fspace);</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Display the result. Memory dataset is:</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * 10 0 11 12 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> * 18 0 19 20 0 21 22 0 0</span></div>
+<div class="line"><span class="comment"> * 0 59 0 61 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> * 0 0 27 28 0 29 30 0 0</span></div>
+<div class="line"><span class="comment"> * 0 0 35 36 67 37 38 0 0</span></div>
+<div class="line"><span class="comment"> * 0 0 43 44 0 45 46 0 0</span></div>
+<div class="line"><span class="comment"> * 0 0 0 0 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> * 0 0 0 0 0 0 0 0 0</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keywordflow">for</span> (i=0; i &lt; MSPACE_DIM1; i++)</div>
+<div class="line"> {</div>
+<div class="line"> <span class="keywordflow">for</span>(j=0; j &lt; MSPACE_DIM2; j++)</div>
+<div class="line"> cout &lt;&lt; matrix_out[i][j] &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
+<div class="line"> cout &lt;&lt; endl;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">/*</span></div>
+<div class="line"><span class="comment"> * Close the dataset and the file.</span></div>
+<div class="line"><span class="comment"> */</span></div>
+<div class="line"> <span class="keyword">delete</span> dataset;</div>
+<div class="line"> <span class="keyword">delete</span> file;</div>
+<div class="line"> } <span class="comment">// end of try block</span></div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// catch failure caused by the H5File operations</span></div>
+<div class="line"> <span class="keywordflow">catch</span>( <a name="_a12"></a><a class="code" href="class_h5_1_1_file_i_exception.html">FileIException</a> error )</div>
+<div class="line"> {</div>
+<div class="line"> error.<a name="a13"></a><a class="code" href="class_h5_1_1_exception.html#ad5bf0f93b4156d6366110dd5e08342a2">printError</a>();</div>
+<div class="line"> <span class="keywordflow">return</span> -1;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// catch failure caused by the DataSet operations</span></div>
+<div class="line"> <span class="keywordflow">catch</span>( <a name="_a14"></a><a class="code" href="class_h5_1_1_data_set_i_exception.html">DataSetIException</a> error )</div>
+<div class="line"> {</div>
+<div class="line"> error.<a class="code" href="class_h5_1_1_exception.html#ad5bf0f93b4156d6366110dd5e08342a2">printError</a>();</div>
+<div class="line"> <span class="keywordflow">return</span> -1;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="comment">// catch failure caused by the DataSpace operations</span></div>
+<div class="line"> <span class="keywordflow">catch</span>( <a name="_a15"></a><a class="code" href="class_h5_1_1_data_space_i_exception.html">DataSpaceIException</a> error )</div>
+<div class="line"> {</div>
+<div class="line"> error.<a class="code" href="class_h5_1_1_exception.html#ad5bf0f93b4156d6366110dd5e08342a2">printError</a>();</div>
+<div class="line"> <span class="keywordflow">return</span> -1;</div>
+<div class="line"> }</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">return</span> 0;</div>
+<div class="line">}</div>
+</div><!-- fragment --> </div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Jul 21 2014 10:58:44 for HDF5 C++ API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.5
+</small></address>
+</body>
+</html>