summaryrefslogtreecommitdiffstats
path: root/c++/examples
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2020-09-30 14:27:10 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2020-09-30 14:27:10 (GMT)
commitb2d661b508a7fc7a2592c13bc6bdc175551f075d (patch)
tree13baeb0d83a7c2a4c6299993c182b1227c2f6114 /c++/examples
parent29ab58b58dce556639ea3154e262895773a8a8df (diff)
downloadhdf5-b2d661b508a7fc7a2592c13bc6bdc175551f075d.zip
hdf5-b2d661b508a7fc7a2592c13bc6bdc175551f075d.tar.gz
hdf5-b2d661b508a7fc7a2592c13bc6bdc175551f075d.tar.bz2
Clang-format of source files
Diffstat (limited to 'c++/examples')
-rw-r--r--c++/examples/chunks.cpp84
-rw-r--r--c++/examples/compound.cpp323
-rw-r--r--c++/examples/create.cpp194
-rw-r--r--c++/examples/extend_ds.cpp386
-rw-r--r--c++/examples/h5group.cpp86
-rw-r--r--c++/examples/h5tutr_cmprss.cpp84
-rw-r--r--c++/examples/h5tutr_crtatt.cpp65
-rw-r--r--c++/examples/h5tutr_crtdat.cpp32
-rw-r--r--c++/examples/h5tutr_crtgrp.cpp12
-rw-r--r--c++/examples/h5tutr_crtgrpar.cpp18
-rw-r--r--c++/examples/h5tutr_crtgrpd.cpp66
-rw-r--r--c++/examples/h5tutr_extend.cpp87
-rw-r--r--c++/examples/h5tutr_rdwt.cpp30
-rw-r--r--c++/examples/h5tutr_subset.cpp67
-rw-r--r--c++/examples/readdata.cpp348
-rw-r--r--c++/examples/writedata.cpp190
16 files changed, 1001 insertions, 1071 deletions
diff --git a/c++/examples/chunks.cpp b/c++/examples/chunks.cpp
index 03e2855..fdcb6d3 100644
--- a/c++/examples/chunks.cpp
+++ b/c++/examples/chunks.cpp
@@ -28,20 +28,20 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "SDSextendible.h5" );
-const H5std_string DATASET_NAME( "ExtendibleArray" );
-const int NX = 10;
-const int NY = 5;
-const int RANK = 2;
-const int RANKC = 1;
-
-int main (void)
+const H5std_string FILE_NAME("SDSextendible.h5");
+const H5std_string DATASET_NAME("ExtendibleArray");
+const int NX = 10;
+const int NY = 5;
+const int RANK = 2;
+const int RANKC = 1;
+
+int
+main(void)
{
- hsize_t i, j;
+ hsize_t i, j;
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
/*
* Turn off the auto-printing when failure occurs so that we can
* handle the errors appropriately
@@ -51,8 +51,8 @@ int main (void)
/*
* Open the file and the dataset.
*/
- H5File file( FILE_NAME, H5F_ACC_RDONLY );
- DataSet dataset = file.openDataSet( DATASET_NAME );
+ H5File file(FILE_NAME, H5F_ACC_RDONLY);
+ DataSet dataset = file.openDataSet(DATASET_NAME);
/*
* Get filespace for rank and dimension
@@ -67,10 +67,9 @@ int main (void)
/*
* Get and print the dimension sizes of the file dataspace
*/
- hsize_t dims[2]; // dataset dimensions
- rank = filespace.getSimpleExtentDims( dims );
- cout << "dataset rank = " << rank << ", dimensions "
- << (unsigned long)(dims[0]) << " x "
+ hsize_t dims[2]; // dataset dimensions
+ rank = filespace.getSimpleExtentDims(dims);
+ cout << "dataset rank = " << rank << ", dimensions " << (unsigned long)(dims[0]) << " x "
<< (unsigned long)(dims[1]) << endl;
/*
@@ -81,13 +80,12 @@ int main (void)
/*
* Read dataset back and display.
*/
- int data_out[NX][NY]; // buffer for dataset to be read
- dataset.read( data_out, PredType::NATIVE_INT, mspace1, filespace );
+ int data_out[NX][NY]; // buffer for dataset to be read
+ dataset.read(data_out, PredType::NATIVE_INT, mspace1, filespace);
cout << "\n";
cout << "Dataset: \n";
- for (j = 0; j < dims[0]; j++)
- {
+ for (j = 0; j < dims[0]; j++) {
for (i = 0; i < dims[1]; i++)
cout << data_out[j][i] << " ";
cout << endl;
@@ -117,20 +115,20 @@ int main (void)
*/
hsize_t col_dims[1];
col_dims[0] = 10;
- DataSpace mspace2( RANKC, col_dims );
+ DataSpace mspace2(RANKC, col_dims);
/*
* Define the column (hyperslab) to read.
*/
- hsize_t offset[2] = { 0, 2 };
- hsize_t count[2] = { 10, 1 };
- int column[10]; // buffer for column to be read
+ hsize_t offset[2] = {0, 2};
+ hsize_t count[2] = {10, 1};
+ int column[10]; // buffer for column to be read
/*
* Define hyperslab and read.
*/
- filespace.selectHyperslab( H5S_SELECT_SET, count, offset );
- dataset.read( column, PredType::NATIVE_INT, mspace2, filespace );
+ filespace.selectHyperslab(H5S_SELECT_SET, count, offset);
+ dataset.read(column, PredType::NATIVE_INT, mspace2, filespace);
cout << endl;
cout << "Third column: " << endl;
@@ -161,20 +159,18 @@ int main (void)
*/
hsize_t chunk_dims[2];
int rank_chunk;
- if( H5D_CHUNKED == cparms.getLayout() )
- {
+ if (H5D_CHUNKED == cparms.getLayout()) {
/*
* Get chunking information: rank and dimensions
*/
- rank_chunk = cparms.getChunk( 2, chunk_dims);
- cout << "chunk rank " << rank_chunk << "dimensions "
- << (unsigned long)(chunk_dims[0]) << " x "
- << (unsigned long)(chunk_dims[1]) << endl;
+ rank_chunk = cparms.getChunk(2, chunk_dims);
+ cout << "chunk rank " << rank_chunk << "dimensions " << (unsigned long)(chunk_dims[0]) << " x "
+ << (unsigned long)(chunk_dims[1]) << endl;
/*
* Define the memory space to read a chunk.
*/
- DataSpace mspace3( rank_chunk, chunk_dims );
+ DataSpace mspace3(rank_chunk, chunk_dims);
/*
* Define chunk in the file (hyperslab) to read.
@@ -183,17 +179,16 @@ int main (void)
offset[1] = 0;
count[0] = chunk_dims[0];
count[1] = chunk_dims[1];
- filespace.selectHyperslab( H5S_SELECT_SET, count, offset );
+ filespace.selectHyperslab(H5S_SELECT_SET, count, offset);
/*
* Read chunk back and display.
*/
- int chunk_out[2][5]; // buffer for chunk to be read
- dataset.read( chunk_out, PredType::NATIVE_INT, mspace3, filespace );
+ int chunk_out[2][5]; // buffer for chunk to be read
+ dataset.read(chunk_out, PredType::NATIVE_INT, mspace3, filespace);
cout << endl;
cout << "Chunk:" << endl;
- for (j = 0; j < chunk_dims[0]; j++)
- {
+ for (j = 0; j < chunk_dims[0]; j++) {
for (i = 0; i < chunk_dims[1]; i++)
cout << chunk_out[j][i] << " ";
cout << endl;
@@ -204,25 +199,22 @@ int main (void)
* 2 0 0 0 0
*/
}
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch( FileIException error )
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
diff --git a/c++/examples/compound.cpp b/c++/examples/compound.cpp
index 4b116e0..45b001e 100644
--- a/c++/examples/compound.cpp
+++ b/c++/examples/compound.cpp
@@ -29,175 +29,170 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "SDScompound.h5" );
-const H5std_string DATASET_NAME( "ArrayOfStructures" );
-const H5std_string MEMBER1( "a_name" );
-const H5std_string MEMBER2( "b_name" );
-const H5std_string MEMBER3( "c_name" );
-const int LENGTH = 10;
-const int RANK = 1;
-
-int main(void)
+const H5std_string FILE_NAME("SDScompound.h5");
+const H5std_string DATASET_NAME("ArrayOfStructures");
+const H5std_string MEMBER1("a_name");
+const H5std_string MEMBER2("b_name");
+const H5std_string MEMBER3("c_name");
+const int LENGTH = 10;
+const int RANK = 1;
+
+int
+main(void)
{
- /* First structure and dataset*/
- typedef struct s1_t {
+ /* First structure and dataset*/
+ typedef struct s1_t {
int a;
float b;
double c;
- } s1_t;
+ } s1_t;
- /* Second structure (subset of s1_t) and dataset*/
- typedef struct s2_t {
+ /* Second structure (subset of s1_t) and dataset*/
+ typedef struct s2_t {
double c;
int a;
- } s2_t;
-
- // Try block to detect exceptions raised by any of the calls inside it
- try
- {
- /*
- * Initialize the data
- */
- int i;
- s1_t s1[LENGTH];
- for (i = 0; i< LENGTH; i++)
- {
- s1[i].a = i;
- s1[i].b = i*i;
- s1[i].c = 1./(i+1);
- }
-
- /*
- * Turn off the auto-printing when failure occurs so that we can
- * handle the errors appropriately
- */
- Exception::dontPrint();
-
- /*
- * Create the data space.
- */
- hsize_t dim[] = {LENGTH}; /* Dataspace dimensions */
- DataSpace space( RANK, dim );
-
- /*
- * Create the file.
- */
- H5File* file = new H5File( FILE_NAME, H5F_ACC_TRUNC );
-
- /*
- * Create the memory datatype.
- */
- CompType mtype1( sizeof(s1_t) );
- mtype1.insertMember( MEMBER1, HOFFSET(s1_t, a), PredType::NATIVE_INT);
- mtype1.insertMember( MEMBER3, HOFFSET(s1_t, c), PredType::NATIVE_DOUBLE);
- mtype1.insertMember( MEMBER2, HOFFSET(s1_t, b), PredType::NATIVE_FLOAT);
-
- /*
- * Create the dataset.
- */
- DataSet* dataset;
- dataset = new DataSet(file->createDataSet(DATASET_NAME, mtype1, space));
-
- /*
- * Write data to the dataset;
- */
- dataset->write( s1, mtype1 );
-
- /*
- * Release resources
- */
- delete dataset;
- delete file;
-
- /*
- * Open the file and the dataset.
- */
- file = new H5File( FILE_NAME, H5F_ACC_RDONLY );
- dataset = new DataSet (file->openDataSet( DATASET_NAME ));
-
- /*
- * Create a datatype for s2
- */
- CompType mtype2( sizeof(s2_t) );
-
- mtype2.insertMember( MEMBER3, HOFFSET(s2_t, c), PredType::NATIVE_DOUBLE);
- mtype2.insertMember( MEMBER1, HOFFSET(s2_t, a), PredType::NATIVE_INT);
-
- /*
- * Read two fields c and a from s1 dataset. Fields in the file
- * are found by their names "c_name" and "a_name".
- */
- s2_t s2[LENGTH];
- dataset->read( s2, mtype2 );
-
- /*
- * Display the fields
- */
- cout << endl << "Field c : " << endl;
- for( i = 0; i < LENGTH; i++)
- cout << s2[i].c << " ";
- cout << endl;
-
- cout << endl << "Field a : " << endl;
- for( i = 0; i < LENGTH; i++)
- cout << s2[i].a << " ";
- cout << endl;
-
- /*
- * Create a datatype for s3.
- */
- CompType mtype3( sizeof(float) );
-
- mtype3.insertMember( MEMBER2, 0, PredType::NATIVE_FLOAT);
-
- /*
- * Read field b from s1 dataset. Field in the file is found by its name.
- */
- float s3[LENGTH]; // Third "structure" - used to read float field of s1
- dataset->read( s3, mtype3 );
-
- /*
- * Display the field
- */
- cout << endl << "Field b : " << endl;
- for( i = 0; i < LENGTH; i++)
- cout << s3[i] << " ";
- cout << endl;
-
- /*
- * Release resources
- */
- delete dataset;
- delete file;
- } // end of try block
-
- // catch failure caused by the H5File operations
- catch( FileIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataTypeIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- return 0;
+ } s2_t;
+
+ // Try block to detect exceptions raised by any of the calls inside it
+ try {
+ /*
+ * Initialize the data
+ */
+ int i;
+ s1_t s1[LENGTH];
+ for (i = 0; i < LENGTH; i++) {
+ s1[i].a = i;
+ s1[i].b = i * i;
+ s1[i].c = 1. / (i + 1);
+ }
+
+ /*
+ * Turn off the auto-printing when failure occurs so that we can
+ * handle the errors appropriately
+ */
+ Exception::dontPrint();
+
+ /*
+ * Create the data space.
+ */
+ hsize_t dim[] = {LENGTH}; /* Dataspace dimensions */
+ DataSpace space(RANK, dim);
+
+ /*
+ * Create the file.
+ */
+ H5File *file = new H5File(FILE_NAME, H5F_ACC_TRUNC);
+
+ /*
+ * Create the memory datatype.
+ */
+ CompType mtype1(sizeof(s1_t));
+ mtype1.insertMember(MEMBER1, HOFFSET(s1_t, a), PredType::NATIVE_INT);
+ mtype1.insertMember(MEMBER3, HOFFSET(s1_t, c), PredType::NATIVE_DOUBLE);
+ mtype1.insertMember(MEMBER2, HOFFSET(s1_t, b), PredType::NATIVE_FLOAT);
+
+ /*
+ * Create the dataset.
+ */
+ DataSet *dataset;
+ dataset = new DataSet(file->createDataSet(DATASET_NAME, mtype1, space));
+
+ /*
+ * Write data to the dataset;
+ */
+ dataset->write(s1, mtype1);
+
+ /*
+ * Release resources
+ */
+ delete dataset;
+ delete file;
+
+ /*
+ * Open the file and the dataset.
+ */
+ file = new H5File(FILE_NAME, H5F_ACC_RDONLY);
+ dataset = new DataSet(file->openDataSet(DATASET_NAME));
+
+ /*
+ * Create a datatype for s2
+ */
+ CompType mtype2(sizeof(s2_t));
+
+ mtype2.insertMember(MEMBER3, HOFFSET(s2_t, c), PredType::NATIVE_DOUBLE);
+ mtype2.insertMember(MEMBER1, HOFFSET(s2_t, a), PredType::NATIVE_INT);
+
+ /*
+ * Read two fields c and a from s1 dataset. Fields in the file
+ * are found by their names "c_name" and "a_name".
+ */
+ s2_t s2[LENGTH];
+ dataset->read(s2, mtype2);
+
+ /*
+ * Display the fields
+ */
+ cout << endl << "Field c : " << endl;
+ for (i = 0; i < LENGTH; i++)
+ cout << s2[i].c << " ";
+ cout << endl;
+
+ cout << endl << "Field a : " << endl;
+ for (i = 0; i < LENGTH; i++)
+ cout << s2[i].a << " ";
+ cout << endl;
+
+ /*
+ * Create a datatype for s3.
+ */
+ CompType mtype3(sizeof(float));
+
+ mtype3.insertMember(MEMBER2, 0, PredType::NATIVE_FLOAT);
+
+ /*
+ * Read field b from s1 dataset. Field in the file is found by its name.
+ */
+ float s3[LENGTH]; // Third "structure" - used to read float field of s1
+ dataset->read(s3, mtype3);
+
+ /*
+ * Display the field
+ */
+ cout << endl << "Field b : " << endl;
+ for (i = 0; i < LENGTH; i++)
+ cout << s3[i] << " ";
+ cout << endl;
+
+ /*
+ * Release resources
+ */
+ delete dataset;
+ delete file;
+ } // end of try block
+
+ // catch failure caused by the H5File operations
+ catch (FileIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSet operations
+ catch (DataSetIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataSpaceIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataTypeIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ return 0;
}
diff --git a/c++/examples/create.cpp b/c++/examples/create.cpp
index 06b981b..968c897 100644
--- a/c++/examples/create.cpp
+++ b/c++/examples/create.cpp
@@ -25,105 +25,99 @@
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "SDS.h5" );
-const H5std_string DATASET_NAME( "IntArray" );
-const int NX = 5; // dataset dimensions
-const int NY = 6;
-const int RANK = 2;
-
-int main (void)
+const H5std_string FILE_NAME("SDS.h5");
+const H5std_string DATASET_NAME("IntArray");
+const int NX = 5; // dataset dimensions
+const int NY = 6;
+const int RANK = 2;
+
+int
+main(void)
{
- /*
- * Data initialization.
- */
- int i, j;
- int data[NX][NY]; // buffer for data to write
- for (j = 0; j < NX; j++)
- {
- for (i = 0; i < NY; i++)
- data[j][i] = i + j;
- }
- /*
- * 0 1 2 3 4 5
- * 1 2 3 4 5 6
- * 2 3 4 5 6 7
- * 3 4 5 6 7 8
- * 4 5 6 7 8 9
- */
-
- // Try block to detect exceptions raised by any of the calls inside it
- try
- {
- /*
- * Turn off the auto-printing when failure occurs so that we can
- * handle the errors appropriately
- */
- Exception::dontPrint();
-
- /*
- * Create a new file using H5F_ACC_TRUNC access,
- * default file creation properties, and default file
- * access properties.
- */
- H5File file( FILE_NAME, H5F_ACC_TRUNC );
-
- /*
- * Define the size of the array and create the data space for fixed
- * size dataset.
- */
- hsize_t dimsf[2]; // dataset dimensions
- dimsf[0] = NX;
- dimsf[1] = NY;
- DataSpace dataspace( RANK, dimsf );
-
- /*
- * Define datatype for the data in the file.
- * We will store little endian INT numbers.
- */
- IntType datatype( PredType::NATIVE_INT );
- datatype.setOrder( H5T_ORDER_LE );
-
- /*
- * Create a new dataset within the file using defined dataspace and
- * datatype and default dataset creation properties.
- */
- DataSet dataset = file.createDataSet( DATASET_NAME, datatype, dataspace );
-
- /*
- * Write the data to the dataset using default memory space, file
- * space, and transfer properties.
- */
- dataset.write( data, PredType::NATIVE_INT );
- } // end of try block
-
- // catch failure caused by the H5File operations
- catch( FileIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataTypeIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- return 0; // successfully terminated
+ /*
+ * Data initialization.
+ */
+ int i, j;
+ int data[NX][NY]; // buffer for data to write
+ for (j = 0; j < NX; j++) {
+ for (i = 0; i < NY; i++)
+ data[j][i] = i + j;
+ }
+ /*
+ * 0 1 2 3 4 5
+ * 1 2 3 4 5 6
+ * 2 3 4 5 6 7
+ * 3 4 5 6 7 8
+ * 4 5 6 7 8 9
+ */
+
+ // Try block to detect exceptions raised by any of the calls inside it
+ try {
+ /*
+ * Turn off the auto-printing when failure occurs so that we can
+ * handle the errors appropriately
+ */
+ Exception::dontPrint();
+
+ /*
+ * Create a new file using H5F_ACC_TRUNC access,
+ * default file creation properties, and default file
+ * access properties.
+ */
+ H5File file(FILE_NAME, H5F_ACC_TRUNC);
+
+ /*
+ * Define the size of the array and create the data space for fixed
+ * size dataset.
+ */
+ hsize_t dimsf[2]; // dataset dimensions
+ dimsf[0] = NX;
+ dimsf[1] = NY;
+ DataSpace dataspace(RANK, dimsf);
+
+ /*
+ * Define datatype for the data in the file.
+ * We will store little endian INT numbers.
+ */
+ IntType datatype(PredType::NATIVE_INT);
+ datatype.setOrder(H5T_ORDER_LE);
+
+ /*
+ * Create a new dataset within the file using defined dataspace and
+ * datatype and default dataset creation properties.
+ */
+ DataSet dataset = file.createDataSet(DATASET_NAME, datatype, dataspace);
+
+ /*
+ * Write the data to the dataset using default memory space, file
+ * space, and transfer properties.
+ */
+ dataset.write(data, PredType::NATIVE_INT);
+ } // end of try block
+
+ // catch failure caused by the H5File operations
+ catch (FileIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSet operations
+ catch (DataSetIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataSpaceIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataTypeIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/extend_ds.cpp b/c++/examples/extend_ds.cpp
index 9e005c6..9145088 100644
--- a/c++/examples/extend_ds.cpp
+++ b/c++/examples/extend_ds.cpp
@@ -32,201 +32,195 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "SDSextendible.h5" );
-const H5std_string DATASET_NAME( "ExtendibleArray" );
-const int NX = 10;
-const int NY = 5;
-const int RANK = 2;
-
-int main (void)
+const H5std_string FILE_NAME("SDSextendible.h5");
+const H5std_string DATASET_NAME("ExtendibleArray");
+const int NX = 10;
+const int NY = 5;
+const int RANK = 2;
+
+int
+main(void)
{
- /*
- * Try block to detect exceptions raised by any of the calls inside it
- */
- try
- {
- /*
- * Turn off the auto-printing when failure occurs so that we can
- * handle the errors appropriately
- */
- Exception::dontPrint();
-
- /*
- * Create the data space with unlimited dimensions.
- */
- hsize_t dims[2] = { 3, 3}; // dataset dimensions at creation
- hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
- DataSpace mspace1( RANK, dims, maxdims);
-
- /*
- * Create a new file. If file exists its contents will be overwritten.
- */
- H5File file( FILE_NAME, H5F_ACC_TRUNC );
-
- /*
- * Modify dataset creation properties, i.e. enable chunking.
- */
- DSetCreatPropList cparms;
-
- hsize_t chunk_dims[2] ={2, 5};
- cparms.setChunk( RANK, chunk_dims );
-
- /*
- * Set fill value for the dataset
- */
- int fill_val = 0;
- cparms.setFillValue( PredType::NATIVE_INT, &fill_val);
-
- /*
- * Create a new dataset within the file using cparms
- * creation properties.
- */
- DataSet dataset = file.createDataSet( DATASET_NAME, PredType::NATIVE_INT, mspace1, cparms);
-
- /*
- * Extend the dataset. This call assures that dataset is at least 3 x 3.
- */
- hsize_t size[2];
- size[0] = 3;
- size[1] = 3;
- dataset.extend( size );
-
- /*
- * Select a hyperslab.
- */
- DataSpace fspace1 = dataset.getSpace ();
- hsize_t offset[2];
- offset[0] = 0;
- offset[1] = 0;
- hsize_t dims1[2] = { 3, 3}; /* data1 dimensions */
- fspace1.selectHyperslab( H5S_SELECT_SET, dims1, offset );
-
- /*
- * Write the data to the hyperslab.
- */
- int data1[3][3] = { {1, 1, 1}, /* data to write */
- {1, 1, 1},
- {1, 1, 1} };
- dataset.write( data1, PredType::NATIVE_INT, mspace1, fspace1 );
-
- /*
- * Extend the dataset. Dataset becomes 10 x 3.
- */
- hsize_t dims2[2] = { 7, 1}; /* data2 dimensions */
- dims[0] = dims1[0] + dims2[0];
- size[0] = dims[0];
- size[1] = dims[1];
- dataset.extend( size );
-
- /*
- * Select a hyperslab.
- */
- DataSpace fspace2 = dataset.getSpace ();
- offset[0] = 3;
- offset[1] = 0;
- fspace2.selectHyperslab( H5S_SELECT_SET, dims2, offset );
-
- /*
- * Define memory space
- */
- DataSpace mspace2( RANK, dims2 );
-
- /*
- * Write the data to the hyperslab.
- */
- int data2[7] = { 2, 2, 2, 2, 2, 2, 2};
- dataset.write( data2, PredType::NATIVE_INT, mspace2, fspace2 );
-
- /*
- * Extend the dataset. Dataset becomes 10 x 5.
- */
- hsize_t dims3[2] = { 2, 2}; /* data3 dimensions */
- dims[1] = dims1[1] + dims3[1];
- size[0] = dims[0];
- size[1] = dims[1];
- dataset.extend( size );
-
- /*
- * Select a hyperslab
- */
- DataSpace fspace3 = dataset.getSpace ();
- offset[0] = 0;
- offset[1] = 3;
- fspace3.selectHyperslab( H5S_SELECT_SET, dims3, offset );
-
- /*
- * Define memory space.
- */
- DataSpace mspace3( RANK, dims3 );
-
- /*
- * Write the data to the hyperslab.
- */
- int data3[2][2] = { {3, 3}, {3, 3} };
- dataset.write( data3, PredType::NATIVE_INT, mspace3, fspace3 );
-
- /*
- * Read the data from this dataset and display it.
- */
- int i, j;
- int data_out[NX][NY];
- for (i = 0; i < NX; i++)
- {
- for (j = 0; j < NY; j++)
- data_out[i][j] = 0;
- }
- dataset.read( data_out, PredType::NATIVE_INT );
- /*
- * Resulting dataset
- *
- * 1 1 1 3 3
- * 1 1 1 3 3
- * 1 1 1 0 0
- * 2 0 0 0 0
- * 2 0 0 0 0
- * 2 0 0 0 0
- * 2 0 0 0 0
- * 2 0 0 0 0
- * 2 0 0 0 0
- * 2 0 0 0 0
- */
- /*
- * Display the result.
- */
- for (i=0; i < NX; i++)
- {
- for(j=0; j < NY; j++)
- cout << data_out[i][j] << " ";
- cout << endl;
- }
- } // end of try block
-
- // catch failure caused by the H5File operations
- catch( FileIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataTypeIException error )
- {
- error.printErrorStack();
- return -1;
- }
- return 0;
+ /*
+ * Try block to detect exceptions raised by any of the calls inside it
+ */
+ try {
+ /*
+ * Turn off the auto-printing when failure occurs so that we can
+ * handle the errors appropriately
+ */
+ Exception::dontPrint();
+
+ /*
+ * Create the data space with unlimited dimensions.
+ */
+ hsize_t dims[2] = {3, 3}; // dataset dimensions at creation
+ hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
+ DataSpace mspace1(RANK, dims, maxdims);
+
+ /*
+ * Create a new file. If file exists its contents will be overwritten.
+ */
+ H5File file(FILE_NAME, H5F_ACC_TRUNC);
+
+ /*
+ * Modify dataset creation properties, i.e. enable chunking.
+ */
+ DSetCreatPropList cparms;
+
+ hsize_t chunk_dims[2] = {2, 5};
+ cparms.setChunk(RANK, chunk_dims);
+
+ /*
+ * Set fill value for the dataset
+ */
+ int fill_val = 0;
+ cparms.setFillValue(PredType::NATIVE_INT, &fill_val);
+
+ /*
+ * Create a new dataset within the file using cparms
+ * creation properties.
+ */
+ DataSet dataset = file.createDataSet(DATASET_NAME, PredType::NATIVE_INT, mspace1, cparms);
+
+ /*
+ * Extend the dataset. This call assures that dataset is at least 3 x 3.
+ */
+ hsize_t size[2];
+ size[0] = 3;
+ size[1] = 3;
+ dataset.extend(size);
+
+ /*
+ * Select a hyperslab.
+ */
+ DataSpace fspace1 = dataset.getSpace();
+ hsize_t offset[2];
+ offset[0] = 0;
+ offset[1] = 0;
+ hsize_t dims1[2] = {3, 3}; /* data1 dimensions */
+ fspace1.selectHyperslab(H5S_SELECT_SET, dims1, offset);
+
+ /*
+ * Write the data to the hyperslab.
+ */
+ int data1[3][3] = {{1, 1, 1}, /* data to write */
+ {1, 1, 1},
+ {1, 1, 1}};
+ dataset.write(data1, PredType::NATIVE_INT, mspace1, fspace1);
+
+ /*
+ * Extend the dataset. Dataset becomes 10 x 3.
+ */
+ hsize_t dims2[2] = {7, 1}; /* data2 dimensions */
+ dims[0] = dims1[0] + dims2[0];
+ size[0] = dims[0];
+ size[1] = dims[1];
+ dataset.extend(size);
+
+ /*
+ * Select a hyperslab.
+ */
+ DataSpace fspace2 = dataset.getSpace();
+ offset[0] = 3;
+ offset[1] = 0;
+ fspace2.selectHyperslab(H5S_SELECT_SET, dims2, offset);
+
+ /*
+ * Define memory space
+ */
+ DataSpace mspace2(RANK, dims2);
+
+ /*
+ * Write the data to the hyperslab.
+ */
+ int data2[7] = {2, 2, 2, 2, 2, 2, 2};
+ dataset.write(data2, PredType::NATIVE_INT, mspace2, fspace2);
+
+ /*
+ * Extend the dataset. Dataset becomes 10 x 5.
+ */
+ hsize_t dims3[2] = {2, 2}; /* data3 dimensions */
+ dims[1] = dims1[1] + dims3[1];
+ size[0] = dims[0];
+ size[1] = dims[1];
+ dataset.extend(size);
+
+ /*
+ * Select a hyperslab
+ */
+ DataSpace fspace3 = dataset.getSpace();
+ offset[0] = 0;
+ offset[1] = 3;
+ fspace3.selectHyperslab(H5S_SELECT_SET, dims3, offset);
+
+ /*
+ * Define memory space.
+ */
+ DataSpace mspace3(RANK, dims3);
+
+ /*
+ * Write the data to the hyperslab.
+ */
+ int data3[2][2] = {{3, 3}, {3, 3}};
+ dataset.write(data3, PredType::NATIVE_INT, mspace3, fspace3);
+
+ /*
+ * Read the data from this dataset and display it.
+ */
+ int i, j;
+ int data_out[NX][NY];
+ for (i = 0; i < NX; i++) {
+ for (j = 0; j < NY; j++)
+ data_out[i][j] = 0;
+ }
+ dataset.read(data_out, PredType::NATIVE_INT);
+ /*
+ * Resulting dataset
+ *
+ * 1 1 1 3 3
+ * 1 1 1 3 3
+ * 1 1 1 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ */
+ /*
+ * Display the result.
+ */
+ for (i = 0; i < NX; i++) {
+ for (j = 0; j < NY; j++)
+ cout << data_out[i][j] << " ";
+ cout << endl;
+ }
+ } // end of try block
+
+ // catch failure caused by the H5File operations
+ catch (FileIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSet operations
+ catch (DataSetIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataSpaceIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataTypeIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+ return 0;
}
diff --git a/c++/examples/h5group.cpp b/c++/examples/h5group.cpp
index 271c538..3d2c6d9 100644
--- a/c++/examples/h5group.cpp
+++ b/c++/examples/h5group.cpp
@@ -32,22 +32,21 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "Group.h5" );
+const H5std_string FILE_NAME("Group.h5");
const int RANK = 2;
// Operator function
-extern "C" herr_t file_info(hid_t loc_id, const char *name, const H5L_info2_t *linfo,
- void *opdata);
+extern "C" herr_t file_info(hid_t loc_id, const char *name, const H5L_info2_t *linfo, void *opdata);
-int main(void)
+int
+main(void)
{
- hsize_t dims[2];
- hsize_t cdims[2];
+ hsize_t dims[2];
+ hsize_t cdims[2];
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
/*
* Turn off the auto-printing when failure occurs so that we can
* handle the errors appropriately
@@ -58,12 +57,12 @@ int main(void)
* Create the named file, truncating the existing one if any,
* using default create and access property lists.
*/
- H5File *file = new H5File( FILE_NAME, H5F_ACC_TRUNC );
+ H5File *file = new H5File(FILE_NAME, H5F_ACC_TRUNC);
/*
* Create a group in the file
*/
- Group* group = new Group( file->createGroup( "/Data" ));
+ Group *group = new Group(file->createGroup("/Data"));
/*
* Create dataset "Compressed Data" in the group using absolute
@@ -71,21 +70,20 @@ int main(void)
* GZIP compression with the compression effort set to 6.
* Note that compression can be used only when dataset is chunked.
*/
- dims[0] = 1000;
- dims[1] = 20;
- cdims[0] = 20;
- cdims[1] = 20;
- DataSpace *dataspace = new DataSpace(RANK, dims); // create new dspace
- DSetCreatPropList ds_creatplist; // create dataset creation prop list
- ds_creatplist.setChunk( 2, cdims ); // then modify it for compression
- ds_creatplist.setDeflate( 6 );
+ dims[0] = 1000;
+ dims[1] = 20;
+ cdims[0] = 20;
+ cdims[1] = 20;
+ DataSpace * dataspace = new DataSpace(RANK, dims); // create new dspace
+ DSetCreatPropList ds_creatplist; // create dataset creation prop list
+ ds_creatplist.setChunk(2, cdims); // then modify it for compression
+ ds_creatplist.setDeflate(6);
/*
* Create the first dataset.
*/
- DataSet* dataset = new DataSet(file->createDataSet(
- "/Data/Compressed_Data", PredType::NATIVE_INT,
- *dataspace, ds_creatplist ));
+ DataSet *dataset = new DataSet(
+ file->createDataSet("/Data/Compressed_Data", PredType::NATIVE_INT, *dataspace, ds_creatplist));
/*
* Close the first dataset.
@@ -96,11 +94,10 @@ int main(void)
/*
* Create the second dataset.
*/
- dims[0] = 500;
- dims[1] = 20;
+ dims[0] = 500;
+ dims[1] = 20;
dataspace = new DataSpace(RANK, dims); // create second dspace
- dataset = new DataSet(file->createDataSet("/Data/Float_Data",
- PredType::NATIVE_FLOAT, *dataspace));
+ dataset = new DataSet(file->createDataSet("/Data/Float_Data", PredType::NATIVE_FLOAT, *dataspace));
delete dataset;
delete dataspace;
@@ -110,16 +107,16 @@ int main(void)
/*
* Now reopen the file and group in the file.
*/
- file = new H5File(FILE_NAME, H5F_ACC_RDWR);
+ file = new H5File(FILE_NAME, H5F_ACC_RDWR);
group = new Group(file->openGroup("Data"));
/*
* Access "Compressed_Data" dataset in the group.
*/
- try { // to determine if the dataset exists in the group
- dataset = new DataSet( group->openDataSet( "Compressed_Data" ));
+ try { // to determine if the dataset exists in the group
+ dataset = new DataSet(group->openDataSet("Compressed_Data"));
}
- catch( GroupIException not_found_error ) {
+ catch (GroupIException not_found_error) {
cout << " Dataset is not found." << endl;
}
cout << "dataset \"/Data/Compressed_Data\" is open" << endl;
@@ -132,17 +129,16 @@ int main(void)
/*
* Create hard link to the Data group.
*/
- file->link( H5L_TYPE_HARD, "Data", "Data_new" );
+ file->link(H5L_TYPE_HARD, "Data", "Data_new");
/*
* We can access "Compressed_Data" dataset using created
* hard link "Data_new".
*/
- try { // to determine if the dataset exists in the file
- dataset = new DataSet(file->openDataSet( "/Data_new/Compressed_Data" ));
+ try { // to determine if the dataset exists in the file
+ dataset = new DataSet(file->openDataSet("/Data_new/Compressed_Data"));
}
- catch( FileIException not_found_error )
- {
+ catch (FileIException not_found_error) {
cout << " Dataset is not found." << endl;
}
cout << "dataset \"/Data_new/Compressed_Data\" is open" << endl;
@@ -165,11 +161,10 @@ int main(void)
* of the objects in the file root direvtory.
*/
cout << "Unlinking..." << endl;
- try { // attempt to unlink the dataset
- file->unlink( "Data" );
+ try { // attempt to unlink the dataset
+ file->unlink("Data");
}
- catch( FileIException unlink_error )
- {
+ catch (FileIException unlink_error) {
cout << " unlink failed." << endl;
}
cout << "\"Data\" is unlinked" << endl;
@@ -183,32 +178,28 @@ int main(void)
*/
delete group;
delete file;
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch( FileIException error )
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the Attribute operations
- catch( AttributeIException error )
- {
+ catch (AttributeIException error) {
error.printErrorStack();
return -1;
}
@@ -236,4 +227,3 @@ file_info(hid_t loc_id, const char *name, const H5L_info2_t *linfo, void *opdata
H5Gclose(group);
return 0;
}
-
diff --git a/c++/examples/h5tutr_cmprss.cpp b/c++/examples/h5tutr_cmprss.cpp
index e3cf978..23a7aba 100644
--- a/c++/examples/h5tutr_cmprss.cpp
+++ b/c++/examples/h5tutr_cmprss.cpp
@@ -24,20 +24,20 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME("h5tutr_cmprss.h5");
-const H5std_string DATASET_NAME("Compressed_Data");
-const int DIM0 = 100;
-const int DIM1 = 20;
+const H5std_string FILE_NAME("h5tutr_cmprss.h5");
+const H5std_string DATASET_NAME("Compressed_Data");
+const int DIM0 = 100;
+const int DIM1 = 20;
-int main (void)
+int
+main(void)
{
- hsize_t dims[2] = { DIM0, DIM1 }; // dataset dimensions
- hsize_t chunk_dims[2] = { 20, 20 }; // chunk dimensions
- int i,j, buf[DIM0][DIM1];
+ hsize_t dims[2] = {DIM0, DIM1}; // dataset dimensions
+ hsize_t chunk_dims[2] = {20, 20}; // chunk dimensions
+ int i, j, buf[DIM0][DIM1];
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
@@ -49,7 +49,7 @@ int main (void)
DataSpace *dataspace = new DataSpace(2, dims);
// Modify dataset creation property to enable chunking
- DSetCreatPropList *plist = new DSetCreatPropList;
+ DSetCreatPropList *plist = new DSetCreatPropList;
plist->setChunk(2, chunk_dims);
// Set ZLIB (DEFLATE) Compression using level 6.
@@ -62,12 +62,12 @@ int main (void)
// plist->setSzip(szip_options_mask, szip_pixels_per_block);
// Create the dataset.
- DataSet *dataset = new DataSet(file.createDataSet( DATASET_NAME,
- PredType::STD_I32BE, *dataspace, *plist) );
+ DataSet *dataset =
+ new DataSet(file.createDataSet(DATASET_NAME, PredType::STD_I32BE, *dataspace, *plist));
- for (i = 0; i< DIM0; i++)
- for (j=0; j<DIM1; j++)
- buf[i][j] = i+j;
+ for (i = 0; i < DIM0; i++)
+ for (j = 0; j < DIM1; j++)
+ buf[i][j] = i + j;
// Write data to dataset.
dataset->write(buf, PredType::NATIVE_INT);
@@ -83,41 +83,41 @@ int main (void)
// information for dataset and read the data back.
// -----------------------------------------------
- int rbuf[DIM0][DIM1];
- int numfilt;
- size_t nelmts={1}, namelen={1};
- unsigned flags, filter_info, cd_values[1], idx;
- char name[1];
+ int rbuf[DIM0][DIM1];
+ int numfilt;
+ size_t nelmts = {1}, namelen = {1};
+ unsigned flags, filter_info, cd_values[1], idx;
+ char name[1];
H5Z_filter_t filter_type;
// Open the file and the dataset in the file.
file.openFile(FILE_NAME, H5F_ACC_RDONLY);
- dataset = new DataSet(file.openDataSet( DATASET_NAME));
+ dataset = new DataSet(file.openDataSet(DATASET_NAME));
// Get the create property list of the dataset.
- plist = new DSetCreatPropList(dataset->getCreatePlist ());
+ plist = new DSetCreatPropList(dataset->getCreatePlist());
// Get the number of filters associated with the dataset.
numfilt = plist->getNfilters();
cout << "Number of filters associated with dataset: " << numfilt << endl;
- for (idx=0; idx < numfilt; idx++) {
+ for (idx = 0; idx < numfilt; idx++) {
nelmts = 0;
- filter_type = plist->getFilter(idx, flags, nelmts, cd_values, namelen, name , filter_info);
+ filter_type = plist->getFilter(idx, flags, nelmts, cd_values, namelen, name, filter_info);
cout << "Filter Type: ";
switch (filter_type) {
- case H5Z_FILTER_DEFLATE:
- cout << "H5Z_FILTER_DEFLATE" << endl;
- break;
- case H5Z_FILTER_SZIP:
- cout << "H5Z_FILTER_SZIP" << endl;
- break;
- default:
- cout << "Other filter type included." << endl;
- }
+ case H5Z_FILTER_DEFLATE:
+ cout << "H5Z_FILTER_DEFLATE" << endl;
+ break;
+ case H5Z_FILTER_SZIP:
+ cout << "H5Z_FILTER_SZIP" << endl;
+ break;
+ default:
+ cout << "Other filter type included." << endl;
+ }
}
// Read data.
@@ -125,31 +125,27 @@ int main (void)
delete plist;
delete dataset;
- file.close(); // can be skipped
+ file.close(); // can be skipped
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch(DataSetIException error)
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSpace operations
- catch(DataSpaceIException error)
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
- return 0; // successfully terminated
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/h5tutr_crtatt.cpp b/c++/examples/h5tutr_crtatt.cpp
index 409bd62..fdedadf 100644
--- a/c++/examples/h5tutr_crtatt.cpp
+++ b/c++/examples/h5tutr_crtatt.cpp
@@ -21,69 +21,62 @@
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "h5tutr_dset.h5" );
-const H5std_string DATASET_NAME( "dset" );
-const H5std_string ATTR_NAME( "Units" );
+const H5std_string FILE_NAME("h5tutr_dset.h5");
+const H5std_string DATASET_NAME("dset");
+const H5std_string ATTR_NAME("Units");
-const int DIM1 = 2;
+const int DIM1 = 2;
-int main (void)
+int
+main(void)
{
- int attr_data[2] = { 100, 200};
- hsize_t dims[1] = { DIM1 };
+ int attr_data[2] = {100, 200};
+ hsize_t dims[1] = {DIM1};
-
- // Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ // Try block to detect exceptions raised by any of the calls inside it
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Open an existing file and dataset.
- H5File file( FILE_NAME, H5F_ACC_RDWR );
- DataSet dataset = file.openDataSet( DATASET_NAME );
+ H5File file(FILE_NAME, H5F_ACC_RDWR);
+ DataSet dataset = file.openDataSet(DATASET_NAME);
// Create the data space for the attribute.
- DataSpace attr_dataspace = DataSpace (1, dims );
+ DataSpace attr_dataspace = DataSpace(1, dims);
// Create a dataset attribute.
- Attribute attribute = dataset.createAttribute( ATTR_NAME, PredType::STD_I32BE,
- attr_dataspace);
+ Attribute attribute = dataset.createAttribute(ATTR_NAME, PredType::STD_I32BE, attr_dataspace);
// Write the attribute data.
- attribute.write( PredType::NATIVE_INT, attr_data);
+ attribute.write(PredType::NATIVE_INT, attr_data);
- } // end of try block
+ } // end of try block
- // catch failure caused by the H5File operations
- catch( DataSpaceIException error )
- {
+ // catch failure caused by the H5File operations
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
- }
+ }
- // catch failure caused by the H5File operations
- catch( AttributeIException error )
- {
+ // catch failure caused by the H5File operations
+ catch (AttributeIException error) {
error.printErrorStack();
return -1;
- }
+ }
- // catch failure caused by the H5File operations
- catch( FileIException error )
- {
+ // catch failure caused by the H5File operations
+ catch (FileIException error) {
error.printErrorStack();
return -1;
- }
+ }
- // catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
+ // catch failure caused by the DataSet operations
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
- }
+ }
- return 0; // successfully terminated
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/h5tutr_crtdat.cpp b/c++/examples/h5tutr_crtdat.cpp
index 3257223..aef78d9 100644
--- a/c++/examples/h5tutr_crtdat.cpp
+++ b/c++/examples/h5tutr_crtdat.cpp
@@ -22,17 +22,17 @@
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME("h5tutr_dset.h5");
-const H5std_string DATASET_NAME("dset");
-const int NX = 4; // dataset dimensions
-const int NY = 6;
-const int RANK = 2;
+const H5std_string FILE_NAME("h5tutr_dset.h5");
+const H5std_string DATASET_NAME("dset");
+const int NX = 4; // dataset dimensions
+const int NY = 6;
+const int RANK = 2;
-int main (void)
+int
+main(void)
{
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
@@ -41,7 +41,7 @@ int main (void)
H5File file(FILE_NAME, H5F_ACC_TRUNC);
// Create the data space for the dataset.
- hsize_t dims[2]; // dataset dimensions
+ hsize_t dims[2]; // dataset dimensions
dims[0] = NX;
dims[1] = NY;
DataSpace dataspace(RANK, dims);
@@ -49,29 +49,25 @@ int main (void)
// Create the dataset.
DataSet dataset = file.createDataSet(DATASET_NAME, PredType::STD_I32BE, dataspace);
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch(DataSetIException error)
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSpace operations
- catch(DataSpaceIException error)
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
- return 0; // successfully terminated
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/h5tutr_crtgrp.cpp b/c++/examples/h5tutr_crtgrp.cpp
index 43af08a..8e48eec 100644
--- a/c++/examples/h5tutr_crtgrp.cpp
+++ b/c++/examples/h5tutr_crtgrp.cpp
@@ -26,11 +26,11 @@ using namespace H5;
const H5std_string FILE_NAME("h5tutr_group.h5");
-int main(void)
+int
+main(void)
{
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
@@ -46,14 +46,12 @@ int main(void)
} // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the Group operations
- catch(GroupIException error)
- {
+ catch (GroupIException error) {
error.printErrorStack();
return -1;
}
diff --git a/c++/examples/h5tutr_crtgrpar.cpp b/c++/examples/h5tutr_crtgrpar.cpp
index 15cf1df..3414cee 100644
--- a/c++/examples/h5tutr_crtgrpar.cpp
+++ b/c++/examples/h5tutr_crtgrpar.cpp
@@ -26,12 +26,12 @@ using namespace H5;
const H5std_string FILE_NAME("h5tutr_groups.h5");
-int main(void)
+int
+main(void)
{
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately.
@@ -44,7 +44,7 @@ int main(void)
// Create group "MyGroup" in the root group using an absolute name.
- Group group1(file.createGroup( "/MyGroup"));
+ Group group1(file.createGroup("/MyGroup"));
// Create group "Group_A" in group "MyGroup" using an
// absolute name.
@@ -54,7 +54,7 @@ int main(void)
// Create group "Group_B" in group "MyGroup" using a
// relative name.
- Group group3(group1.createGroup ("Group_B"));
+ Group group3(group1.createGroup("Group_B"));
// Close the groups and file.
@@ -66,20 +66,16 @@ int main(void)
} // end of try block
// catch failure caused by the File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the Group operations
- catch(GroupIException error)
- {
+ catch (GroupIException error) {
error.printErrorStack();
return -1;
}
return 0;
}
-
-
diff --git a/c++/examples/h5tutr_crtgrpd.cpp b/c++/examples/h5tutr_crtgrpd.cpp
index c28b666..8ada706 100644
--- a/c++/examples/h5tutr_crtgrpd.cpp
+++ b/c++/examples/h5tutr_crtgrpd.cpp
@@ -27,20 +27,20 @@ using namespace H5;
const H5std_string FILE_NAME("h5tutr_groups.h5");
const H5std_string DATASET_NAME1("/MyGroup/dset1");
const H5std_string DATASET_NAME2("dset2");
-const int RANK = 2;
-const int D1DIM1 = 3;
-const int D1DIM2 = 3;
-const int D2DIM1 = 2;
-const int D2DIM2 = 10;
-
-int main(void)
+const int RANK = 2;
+const int D1DIM1 = 3;
+const int D1DIM2 = 3;
+const int D2DIM1 = 2;
+const int D2DIM2 = 10;
+
+int
+main(void)
{
int dset1_data[D1DIM1][D1DIM2], dset2_data[D2DIM1][D2DIM2]; // data buffers
int i, j;
// Try block to catch exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
@@ -48,12 +48,12 @@ int main(void)
// Initialize the first dataset.
for (i = 0; i < D1DIM1; i++)
for (j = 0; j < D1DIM2; j++)
- dset1_data[i][j] = j + 1;
+ dset1_data[i][j] = j + 1;
// Initialize the second dataset.
for (i = 0; i < D2DIM1; i++)
- for (j = 0; j < D2DIM2; j++)
- dset2_data[i][j] = j + 1;
+ for (j = 0; j < D2DIM2; j++)
+ dset2_data[i][j] = j + 1;
// Open an existing file and dataset.
H5File file(FILE_NAME, H5F_ACC_RDWR);
@@ -62,15 +62,14 @@ int main(void)
// pointer for the instance 'dataspace'. It can be deleted and
// used again later for another data space. An HDF5 identifier is
// closed by the destructor or the method 'close()'.
- hsize_t dims[RANK]; // dataset dimensions
- dims[0] = D1DIM1;
- dims[1] = D1DIM2;
- DataSpace *dataspace = new DataSpace (RANK, dims);
+ hsize_t dims[RANK]; // dataset dimensions
+ dims[0] = D1DIM1;
+ dims[1] = D1DIM2;
+ DataSpace *dataspace = new DataSpace(RANK, dims);
// Create the dataset in group "MyGroup". Same note as for the
// dataspace above.
- DataSet *dataset = new DataSet (file.createDataSet(DATASET_NAME1,
- PredType::STD_I32BE, *dataspace));
+ DataSet *dataset = new DataSet(file.createDataSet(DATASET_NAME1, PredType::STD_I32BE, *dataspace));
// Write the data to the dataset using default memory space, file
// space, and transfer properties.
@@ -81,16 +80,15 @@ int main(void)
delete dataspace;
// Create the data space for the second dataset.
- dims[0] = D2DIM1;
- dims[1] = D2DIM2;
- dataspace = new DataSpace (RANK, dims);
+ dims[0] = D2DIM1;
+ dims[1] = D2DIM2;
+ dataspace = new DataSpace(RANK, dims);
// Create group "Group_A" in group "MyGroup".
Group group(file.openGroup("/MyGroup/Group_A"));
// Create the second dataset in group "Group_A".
- dataset = new DataSet (group.createDataSet(DATASET_NAME2,
- PredType::STD_I32BE, *dataspace));
+ dataset = new DataSet(group.createDataSet(DATASET_NAME2, PredType::STD_I32BE, *dataspace));
// Write the data to the dataset using default memory space, file
// space, and transfer properties.
@@ -104,31 +102,27 @@ int main(void)
} // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
- error.printErrorStack();
- return -1;
+ catch (FileIException error) {
+ error.printErrorStack();
+ return -1;
}
// catch failure caused by the DataSet operations
- catch(DataSetIException error)
- {
- error.printErrorStack();
- return -1;
+ catch (DataSetIException error) {
+ error.printErrorStack();
+ return -1;
}
// catch failure caused by the DataSpace operations
- catch(DataSpaceIException error)
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the Group operations
- catch(GroupIException error)
- {
+ catch (GroupIException error) {
error.printErrorStack();
return -1;
}
- return 0;
+ return 0;
}
diff --git a/c++/examples/h5tutr_extend.cpp b/c++/examples/h5tutr_extend.cpp
index 94e9acf..71a8ffb 100644
--- a/c++/examples/h5tutr_extend.cpp
+++ b/c++/examples/h5tutr_extend.cpp
@@ -24,34 +24,28 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME("h5tutr_extend.h5");
-const H5std_string DATASETNAME("ExtendibleArray");
+const H5std_string FILE_NAME("h5tutr_extend.h5");
+const H5std_string DATASETNAME("ExtendibleArray");
-int main (void)
+int
+main(void)
{
- hsize_t dims[2] = {3,3}; // dataset dimensions at creation
- hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
- hsize_t chunk_dims[2] ={2, 5};
- int data[3][3] = { {1, 1, 1}, // data to write
- {1, 1, 1},
- {1, 1, 1} };
-
- // Variables used in extending and writing to the extended portion of dataset
-
- hsize_t size[2];
- hsize_t offset[2];
- hsize_t dimsext[2] = {7, 3}; // extend dimensions
- int dataext[7][3] = { {2, 3, 4},
- {2, 3, 4},
- {2, 3, 4},
- {2, 3, 4},
- {2, 3, 4},
- {2, 3, 4},
- {2, 3, 4} };
+ hsize_t dims[2] = {3, 3}; // dataset dimensions at creation
+ hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
+ hsize_t chunk_dims[2] = {2, 5};
+ int data[3][3] = {{1, 1, 1}, // data to write
+ {1, 1, 1},
+ {1, 1, 1}};
+
+ // Variables used in extending and writing to the extended portion of dataset
+
+ hsize_t size[2];
+ hsize_t offset[2];
+ hsize_t dimsext[2] = {7, 3}; // extend dimensions
+ int dataext[7][3] = {{2, 3, 4}, {2, 3, 4}, {2, 3, 4}, {2, 3, 4}, {2, 3, 4}, {2, 3, 4}, {2, 3, 4}};
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
@@ -63,15 +57,15 @@ int main (void)
// for the instance 'dataspace'. It can be deleted and used again
// later for another dataspace. An HDF5 identifier can be closed
// by the destructor or the method 'close()'.
- DataSpace *dataspace = new DataSpace (2, dims, maxdims);
+ DataSpace *dataspace = new DataSpace(2, dims, maxdims);
// Modify dataset creation property to enable chunking
DSetCreatPropList prop;
prop.setChunk(2, chunk_dims);
// Create the chunked dataset. Note the use of pointer.
- DataSet *dataset = new DataSet(file.createDataSet( DATASETNAME,
- PredType::STD_I32BE, *dataspace, prop) );
+ DataSet *dataset =
+ new DataSet(file.createDataSet(DATASETNAME, PredType::STD_I32BE, *dataspace, prop));
// Write data to dataset.
dataset->write(data, PredType::NATIVE_INT);
@@ -82,9 +76,9 @@ int main (void)
dataset->extend(size);
// Select a hyperslab in extended portion of the dataset.
- DataSpace *filespace = new DataSpace(dataset->getSpace ());
- offset[0] = 3;
- offset[1] = 0;
+ DataSpace *filespace = new DataSpace(dataset->getSpace());
+ offset[0] = 3;
+ offset[1] = 0;
filespace->selectHyperslab(H5S_SELECT_SET, dimsext, offset);
// Define memory space.
@@ -105,25 +99,26 @@ int main (void)
// Re-open the file and read the data back
// ---------------------------------------
- int rdata[10][3];
- int i,j, rank, rank_chunk;
- hsize_t chunk_dimsr[2], dimsr[2];
+ int rdata[10][3];
+ int i, j, rank, rank_chunk;
+ hsize_t chunk_dimsr[2], dimsr[2];
// Open the file and dataset.
file.openFile(FILE_NAME, H5F_ACC_RDONLY);
- dataset = new DataSet(file.openDataSet( DATASETNAME));
+ dataset = new DataSet(file.openDataSet(DATASETNAME));
// Get the dataset's dataspace and creation property list.
filespace = new DataSpace(dataset->getSpace());
- prop = dataset->getCreatePlist();
+ prop = dataset->getCreatePlist();
// Get information to obtain memory dataspace.
- rank = filespace->getSimpleExtentNdims();
+ rank = filespace->getSimpleExtentNdims();
herr_t status_n = filespace->getSimpleExtentDims(dimsr);
if (H5D_CHUNKED == prop.getLayout())
- rank_chunk = prop.getChunk(rank, chunk_dimsr);
- cout << "rank chunk = " << rank_chunk << endl;;
+ rank_chunk = prop.getChunk(rank, chunk_dimsr);
+ cout << "rank chunk = " << rank_chunk << endl;
+ ;
memspace = new DataSpace(rank, dimsr, NULL);
dataset->read(rdata, PredType::NATIVE_INT, *memspace, *filespace);
@@ -131,7 +126,7 @@ int main (void)
cout << endl;
for (j = 0; j < dimsr[0]; j++) {
for (i = 0; i < dimsr[1]; i++)
- cout << " " << rdata[j][i];
+ cout << " " << rdata[j][i];
cout << endl;
}
@@ -142,29 +137,25 @@ int main (void)
delete dataset;
file.close();
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch(DataSetIException error)
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSpace operations
- catch(DataSpaceIException error)
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
- return 0; // successfully terminated
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/h5tutr_rdwt.cpp b/c++/examples/h5tutr_rdwt.cpp
index e9b76ad..4d265cd 100644
--- a/c++/examples/h5tutr_rdwt.cpp
+++ b/c++/examples/h5tutr_rdwt.cpp
@@ -21,53 +21,51 @@
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME("h5tutr_dset.h5");
-const H5std_string DATASET_NAME("dset");
-const int DIM0 = 4; // dataset dimensions
-const int DIM1 = 6;
+const H5std_string FILE_NAME("h5tutr_dset.h5");
+const H5std_string DATASET_NAME("dset");
+const int DIM0 = 4; // dataset dimensions
+const int DIM1 = 6;
-int main (void)
+int
+main(void)
{
// Data initialization.
int i, j;
- int data[DIM0][DIM1]; // buffer for data to write
+ int data[DIM0][DIM1]; // buffer for data to write
for (j = 0; j < DIM0; j++)
for (i = 0; i < DIM1; i++)
- data[j][i] = i * 6 + j + 1;
+ data[j][i] = i * 6 + j + 1;
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
// Open an existing file and dataset.
- H5File file(FILE_NAME, H5F_ACC_RDWR);
+ H5File file(FILE_NAME, H5F_ACC_RDWR);
DataSet dataset = file.openDataSet(DATASET_NAME);
// Write the data to the dataset using default memory space, file
// space, and transfer properties.
dataset.write(data, PredType::NATIVE_INT);
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch(DataSetIException error)
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
- return 0; // successfully terminated
+ return 0; // successfully terminated
}
diff --git a/c++/examples/h5tutr_subset.cpp b/c++/examples/h5tutr_subset.cpp
index f7d0513..d4b77c3 100644
--- a/c++/examples/h5tutr_subset.cpp
+++ b/c++/examples/h5tutr_subset.cpp
@@ -24,23 +24,23 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME("h5tutr_subset.h5");
-const H5std_string DATASET_NAME("IntArray");
+const H5std_string FILE_NAME("h5tutr_subset.h5");
+const H5std_string DATASET_NAME("IntArray");
-const int RANK = 2;
-const int DIM0_SUB = 3; // subset dimensions
-const int DIM1_SUB = 4;
-const int DIM0 = 8; // size of dataset
-const int DIM1 = 10;
+const int RANK = 2;
+const int DIM0_SUB = 3; // subset dimensions
+const int DIM1_SUB = 4;
+const int DIM0 = 8; // size of dataset
+const int DIM1 = 10;
-int main (void)
+int
+main(void)
{
- int i,j;
- int data[DIM0][DIM1], sdata[DIM0_SUB][DIM1_SUB], rdata[DIM0][DIM1];
+ int i, j;
+ int data[DIM0][DIM1], sdata[DIM0_SUB][DIM1_SUB], rdata[DIM0][DIM1];
// Try block to detect exceptions raised by any of the calls inside it
- try
- {
+ try {
// Turn off the auto-printing when failure occurs so that we can
// handle the errors appropriately
Exception::dontPrint();
@@ -54,28 +54,26 @@ int main (void)
H5File file(FILE_NAME, H5F_ACC_TRUNC);
hsize_t dims[2];
- dims[0] = DIM0;
- dims[1] = DIM1;
- DataSpace dataspace = DataSpace (RANK, dims);
-
- DataSet dataset(file.createDataSet( DATASET_NAME,
- PredType::STD_I32BE, dataspace) );
+ dims[0] = DIM0;
+ dims[1] = DIM1;
+ DataSpace dataspace = DataSpace(RANK, dims);
+ DataSet dataset(file.createDataSet(DATASET_NAME, PredType::STD_I32BE, dataspace));
for (j = 0; j < DIM0; j++) {
- for (i = 0; i < DIM1; i++)
- if (i< (DIM1/2))
+ for (i = 0; i < DIM1; i++)
+ if (i < (DIM1 / 2))
data[j][i] = 1;
- else
+ else
data[j][i] = 2;
- }
+ }
dataset.write(data, PredType::NATIVE_INT);
cout << endl << "Data Written to File:" << endl;
for (j = 0; j < DIM0; j++) {
for (i = 0; i < DIM1; i++)
- cout << " " << data[j][i];
+ cout << " " << data[j][i];
cout << endl;
}
@@ -99,8 +97,8 @@ int main (void)
offset[0] = 1;
offset[1] = 2;
- count[0] = DIM0_SUB;
- count[1] = DIM1_SUB;
+ count[0] = DIM0_SUB;
+ count[1] = DIM1_SUB;
stride[0] = 1;
stride[1] = 1;
@@ -126,17 +124,16 @@ int main (void)
cout << " offset=1x2 stride=1x1 count=3x4 block=1x1" << endl;
for (j = 0; j < DIM0_SUB; j++) {
for (i = 0; i < DIM1_SUB; i++)
- sdata[j][i] = 5;
+ sdata[j][i] = 5;
}
dataset.write(sdata, PredType::NATIVE_INT, memspace, dataspace);
dataset.read(rdata, PredType::NATIVE_INT);
-
cout << endl << "Data in File after Subset is Written:" << endl;
for (i = 0; i < DIM0; i++) {
for (j = 0; j < DIM1; j++)
- cout << " " << rdata[i][j];
+ cout << " " << rdata[i][j];
cout << endl;
}
cout << endl;
@@ -148,29 +145,25 @@ int main (void)
dataset.close();
file.close();
- } // end of try block
+ } // end of try block
// catch failure caused by the H5File operations
- catch(FileIException error)
- {
+ catch (FileIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSet operations
- catch(DataSetIException error)
- {
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
}
// catch failure caused by the DataSpace operations
- catch(DataSpaceIException error)
- {
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
}
- return 0; // successfully terminated
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/readdata.cpp b/c++/examples/readdata.cpp
index 3df8191..e088cce 100644
--- a/c++/examples/readdata.cpp
+++ b/c++/examples/readdata.cpp
@@ -29,184 +29,174 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "SDS.h5" );
-const H5std_string DATASET_NAME( "IntArray" );
-const int NX_SUB = 3; // hyperslab dimensions
-const int NY_SUB = 4;
-const int NX = 7; // output buffer dimensions
-const int NY = 7;
-const int NZ = 3;
-const int RANK_OUT = 3;
-
-int main (void)
+const H5std_string FILE_NAME("SDS.h5");
+const H5std_string DATASET_NAME("IntArray");
+const int NX_SUB = 3; // hyperslab dimensions
+const int NY_SUB = 4;
+const int NX = 7; // output buffer dimensions
+const int NY = 7;
+const int NZ = 3;
+const int RANK_OUT = 3;
+
+int
+main(void)
{
- /*
- * Output buffer initialization.
- */
- int i, j, k;
- int data_out[NX][NY][NZ ]; /* output buffer */
- for (j = 0; j < NX; j++)
- {
- for (i = 0; i < NY; i++)
- {
- for (k = 0; k < NZ ; k++)
- data_out[j][i][k] = 0;
- }
- }
-
- /*
- * Try block to detect exceptions raised by any of the calls inside it
- */
- try
- {
- /*
- * Turn off the auto-printing when failure occurs so that we can
- * handle the errors appropriately
- */
- Exception::dontPrint();
-
- /*
- * Open the specified file and the specified dataset in the file.
- */
- H5File file( FILE_NAME, H5F_ACC_RDONLY );
- DataSet dataset = file.openDataSet( DATASET_NAME );
-
- /*
- * Get the class of the datatype that is used by the dataset.
- */
- H5T_class_t type_class = dataset.getTypeClass();
-
- /*
- * Get class of datatype and print message if it's an integer.
- */
- if( type_class == H5T_INTEGER )
- {
- cout << "Data set has INTEGER type" << endl;
-
- /*
- * Get the integer datatype
- */
- IntType intype = dataset.getIntType();
-
- /*
- * Get order of datatype and print message if it's a little endian.
- */
- H5std_string order_string;
- H5T_order_t order = intype.getOrder( order_string );
- cout << order_string << endl;
-
- /*
- * Get size of the data element stored in file and print it.
- */
- size_t size = intype.getSize();
- cout << "Data size is " << size << endl;
- }
-
- /*
- * Get dataspace of the dataset.
- */
- DataSpace dataspace = dataset.getSpace();
-
- /*
- * Get the number of dimensions in the dataspace.
- */
- int rank = dataspace.getSimpleExtentNdims();
-
- /*
- * Get the dimension size of each dimension in the dataspace and
- * display them.
- */
- hsize_t dims_out[2];
- int ndims = dataspace.getSimpleExtentDims( dims_out, NULL);
- cout << "rank " << rank << ", dimensions " <<
- (unsigned long)(dims_out[0]) << " x " <<
- (unsigned long)(dims_out[1]) << endl;
-
- /*
- * Define hyperslab in the dataset; implicitly giving strike and
- * block NULL.
- */
- hsize_t offset[2]; // hyperslab offset in the file
- hsize_t count[2]; // size of the hyperslab in the file
- offset[0] = 1;
- offset[1] = 2;
- count[0] = NX_SUB;
- count[1] = NY_SUB;
- dataspace.selectHyperslab( H5S_SELECT_SET, count, offset );
-
- /*
- * Define the memory dataspace.
- */
- hsize_t dimsm[3]; /* memory space dimensions */
- dimsm[0] = NX;
- dimsm[1] = NY;
- dimsm[2] = NZ ;
- DataSpace memspace( RANK_OUT, dimsm );
-
- /*
- * Define memory hyperslab.
- */
- hsize_t offset_out[3]; // hyperslab offset in memory
- hsize_t count_out[3]; // size of the hyperslab in memory
- offset_out[0] = 3;
- offset_out[1] = 0;
- offset_out[2] = 0;
- count_out[0] = NX_SUB;
- count_out[1] = NY_SUB;
- count_out[2] = 1;
- memspace.selectHyperslab( H5S_SELECT_SET, count_out, offset_out );
-
- /*
- * Read data from hyperslab in the file into the hyperslab in
- * memory and display the data.
- */
- dataset.read( data_out, PredType::NATIVE_INT, memspace, dataspace );
-
- for (j = 0; j < NX; j++)
- {
- for (i = 0; i < NY; i++)
- cout << data_out[j][i][0] << " ";
- cout << endl;
- }
- /*
- * 0 0 0 0 0 0 0
- * 0 0 0 0 0 0 0
- * 0 0 0 0 0 0 0
- * 3 4 5 6 0 0 0
- * 4 5 6 7 0 0 0
- * 5 6 7 8 0 0 0
- * 0 0 0 0 0 0 0
- */
- } // end of try block
-
- // catch failure caused by the H5File operations
- catch( FileIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- // catch failure caused by the DataSpace operations
- catch( DataTypeIException error )
- {
- error.printErrorStack();
- return -1;
- }
-
- return 0; // successfully terminated
+ /*
+ * Output buffer initialization.
+ */
+ int i, j, k;
+ int data_out[NX][NY][NZ]; /* output buffer */
+ for (j = 0; j < NX; j++) {
+ for (i = 0; i < NY; i++) {
+ for (k = 0; k < NZ; k++)
+ data_out[j][i][k] = 0;
+ }
+ }
+
+ /*
+ * Try block to detect exceptions raised by any of the calls inside it
+ */
+ try {
+ /*
+ * Turn off the auto-printing when failure occurs so that we can
+ * handle the errors appropriately
+ */
+ Exception::dontPrint();
+
+ /*
+ * Open the specified file and the specified dataset in the file.
+ */
+ H5File file(FILE_NAME, H5F_ACC_RDONLY);
+ DataSet dataset = file.openDataSet(DATASET_NAME);
+
+ /*
+ * Get the class of the datatype that is used by the dataset.
+ */
+ H5T_class_t type_class = dataset.getTypeClass();
+
+ /*
+ * Get class of datatype and print message if it's an integer.
+ */
+ if (type_class == H5T_INTEGER) {
+ cout << "Data set has INTEGER type" << endl;
+
+ /*
+ * Get the integer datatype
+ */
+ IntType intype = dataset.getIntType();
+
+ /*
+ * Get order of datatype and print message if it's a little endian.
+ */
+ H5std_string order_string;
+ H5T_order_t order = intype.getOrder(order_string);
+ cout << order_string << endl;
+
+ /*
+ * Get size of the data element stored in file and print it.
+ */
+ size_t size = intype.getSize();
+ cout << "Data size is " << size << endl;
+ }
+
+ /*
+ * Get dataspace of the dataset.
+ */
+ DataSpace dataspace = dataset.getSpace();
+
+ /*
+ * Get the number of dimensions in the dataspace.
+ */
+ int rank = dataspace.getSimpleExtentNdims();
+
+ /*
+ * Get the dimension size of each dimension in the dataspace and
+ * display them.
+ */
+ hsize_t dims_out[2];
+ int ndims = dataspace.getSimpleExtentDims(dims_out, NULL);
+ cout << "rank " << rank << ", dimensions " << (unsigned long)(dims_out[0]) << " x "
+ << (unsigned long)(dims_out[1]) << endl;
+
+ /*
+ * Define hyperslab in the dataset; implicitly giving strike and
+ * block NULL.
+ */
+ hsize_t offset[2]; // hyperslab offset in the file
+ hsize_t count[2]; // size of the hyperslab in the file
+ offset[0] = 1;
+ offset[1] = 2;
+ count[0] = NX_SUB;
+ count[1] = NY_SUB;
+ dataspace.selectHyperslab(H5S_SELECT_SET, count, offset);
+
+ /*
+ * Define the memory dataspace.
+ */
+ hsize_t dimsm[3]; /* memory space dimensions */
+ dimsm[0] = NX;
+ dimsm[1] = NY;
+ dimsm[2] = NZ;
+ DataSpace memspace(RANK_OUT, dimsm);
+
+ /*
+ * Define memory hyperslab.
+ */
+ hsize_t offset_out[3]; // hyperslab offset in memory
+ hsize_t count_out[3]; // size of the hyperslab in memory
+ offset_out[0] = 3;
+ offset_out[1] = 0;
+ offset_out[2] = 0;
+ count_out[0] = NX_SUB;
+ count_out[1] = NY_SUB;
+ count_out[2] = 1;
+ memspace.selectHyperslab(H5S_SELECT_SET, count_out, offset_out);
+
+ /*
+ * Read data from hyperslab in the file into the hyperslab in
+ * memory and display the data.
+ */
+ dataset.read(data_out, PredType::NATIVE_INT, memspace, dataspace);
+
+ for (j = 0; j < NX; j++) {
+ for (i = 0; i < NY; i++)
+ cout << data_out[j][i][0] << " ";
+ cout << endl;
+ }
+ /*
+ * 0 0 0 0 0 0 0
+ * 0 0 0 0 0 0 0
+ * 0 0 0 0 0 0 0
+ * 3 4 5 6 0 0 0
+ * 4 5 6 7 0 0 0
+ * 5 6 7 8 0 0 0
+ * 0 0 0 0 0 0 0
+ */
+ } // end of try block
+
+ // catch failure caused by the H5File operations
+ catch (FileIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSet operations
+ catch (DataSetIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataSpaceIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ // catch failure caused by the DataSpace operations
+ catch (DataTypeIException error) {
+ error.printErrorStack();
+ return -1;
+ }
+
+ return 0; // successfully terminated
}
-
diff --git a/c++/examples/writedata.cpp b/c++/examples/writedata.cpp
index eada2ed..61cd43a 100644
--- a/c++/examples/writedata.cpp
+++ b/c++/examples/writedata.cpp
@@ -32,31 +32,31 @@ using std::endl;
#include "H5Cpp.h"
using namespace H5;
-const H5std_string FILE_NAME( "Select.h5" );
-const H5std_string DATASET_NAME( "Matrix in file" );
-const int MSPACE1_RANK = 1; // Rank of the first dataset in memory
-const int MSPACE1_DIM = 50; // Dataset size in memory
-const int MSPACE2_RANK = 1; // Rank of the second dataset in memory
-const int MSPACE2_DIM = 4; // Dataset size in memory
-const int FSPACE_RANK = 2; // Dataset rank as it is stored in the file
-const int FSPACE_DIM1 = 8; // Dimension sizes of the dataset as it is
-const int FSPACE_DIM2 = 12; // stored in the file
-const int MSPACE_RANK = 2; // Rank of the first dataset in memory
-const int MSPACE_DIM1 = 8; // We will read dataset back from the file
-const int MSPACE_DIM2 = 9; // to the dataset in memory with these
- // dataspace parameters
-const int NPOINTS = 4; // Number of points that will be selected
- // and overwritten
-
-int main (void)
+const H5std_string FILE_NAME("Select.h5");
+const H5std_string DATASET_NAME("Matrix in file");
+const int MSPACE1_RANK = 1; // Rank of the first dataset in memory
+const int MSPACE1_DIM = 50; // Dataset size in memory
+const int MSPACE2_RANK = 1; // Rank of the second dataset in memory
+const int MSPACE2_DIM = 4; // Dataset size in memory
+const int FSPACE_RANK = 2; // Dataset rank as it is stored in the file
+const int FSPACE_DIM1 = 8; // Dimension sizes of the dataset as it is
+const int FSPACE_DIM2 = 12; // stored in the file
+const int MSPACE_RANK = 2; // Rank of the first dataset in memory
+const int MSPACE_DIM1 = 8; // We will read dataset back from the file
+const int MSPACE_DIM2 = 9; // to the dataset in memory with these
+ // dataspace parameters
+const int NPOINTS = 4; // Number of points that will be selected
+ // and overwritten
+
+int
+main(void)
{
- int i,j; // loop indices */
+ int i, j; // loop indices */
/*
* Try block to detect exceptions raised by any of the calls inside it
*/
- try
- {
+ try {
/*
* Turn off the auto-printing when failure occurs so that we can
* handle the errors appropriately
@@ -66,47 +66,51 @@ int main (void)
/*
* Create a file.
*/
- H5File* file = new H5File( FILE_NAME, H5F_ACC_TRUNC );
+ H5File *file = new H5File(FILE_NAME, H5F_ACC_TRUNC);
/*
- * Create property list for a dataset and set up fill values.
- */
- int fillvalue = 0; /* Fill value for the dataset */
+ * Create property list for a dataset and set up fill values.
+ */
+ int fillvalue = 0; /* Fill value for the dataset */
DSetCreatPropList plist;
plist.setFillValue(PredType::NATIVE_INT, &fillvalue);
/*
* Create dataspace for the dataset in the file.
*/
- hsize_t fdim[] = {FSPACE_DIM1, FSPACE_DIM2}; // dim sizes of ds (on disk)
- DataSpace fspace( FSPACE_RANK, fdim );
+ hsize_t fdim[] = {FSPACE_DIM1, FSPACE_DIM2}; // dim sizes of ds (on disk)
+ DataSpace fspace(FSPACE_RANK, fdim);
/*
* Create dataset and write it into the file.
*/
- DataSet* dataset = new DataSet(file->createDataSet(
- DATASET_NAME, PredType::NATIVE_INT, fspace, plist));
+ DataSet *dataset =
+ new DataSet(file->createDataSet(DATASET_NAME, PredType::NATIVE_INT, fspace, plist));
/*
* Select hyperslab for the dataset in the file, using 3x2 blocks,
* (4,3) stride and (2,4) count starting at the position (0,1).
*/
- hsize_t start[2]; // Start of hyperslab
+ hsize_t start[2]; // Start of hyperslab
hsize_t stride[2]; // Stride of hyperslab
hsize_t count[2]; // Block count
hsize_t block[2]; // Block sizes
- start[0] = 0; start[1] = 1;
- stride[0] = 4; stride[1] = 3;
- count[0] = 2; count[1] = 4;
- block[0] = 3; block[1] = 2;
- fspace.selectHyperslab( H5S_SELECT_SET, count, start, stride, block);
+ start[0] = 0;
+ start[1] = 1;
+ stride[0] = 4;
+ stride[1] = 3;
+ count[0] = 2;
+ count[1] = 4;
+ block[0] = 3;
+ block[1] = 2;
+ fspace.selectHyperslab(H5S_SELECT_SET, count, start, stride, block);
/*
* Create dataspace for the first dataset.
*/
- hsize_t dim1[] = {MSPACE1_DIM}; /* Dimension size of the first dataset
- (in memory) */
- DataSpace mspace1( MSPACE1_RANK, dim1 );
+ hsize_t dim1[] = {MSPACE1_DIM}; /* Dimension size of the first dataset
+ (in memory) */
+ DataSpace mspace1(MSPACE1_RANK, dim1);
/*
* Select hyperslab.
@@ -117,7 +121,7 @@ int main (void)
stride[0] = 1;
count[0] = 48;
block[0] = 1;
- mspace1.selectHyperslab( H5S_SELECT_SET, count, start, stride, block);
+ mspace1.selectHyperslab(H5S_SELECT_SET, count, start, stride, block);
/*
* Write selection from the vector buffer to the dataset in the file.
@@ -132,7 +136,7 @@ int main (void)
* 0 41 42 0 43 44 0 45 46 0 47 48
* 0 0 0 0 0 0 0 0 0 0 0 0
*/
- int vector[MSPACE1_DIM]; // vector buffer for dset
+ int vector[MSPACE1_DIM]; // vector buffer for dset
/*
* Buffer initialization.
@@ -141,7 +145,7 @@ int main (void)
for (i = 1; i < MSPACE1_DIM - 1; i++)
vector[i] = i;
- dataset->write( vector, PredType::NATIVE_INT, mspace1, fspace );
+ dataset->write(vector, PredType::NATIVE_INT, mspace1, fspace);
/*
* Reset the selection for the file dataspace fid.
@@ -151,27 +155,31 @@ int main (void)
/*
* Create dataspace for the second dataset.
*/
- hsize_t dim2[] = {MSPACE2_DIM}; /* Dimension size of the second dataset
- (in memory */
- DataSpace mspace2( MSPACE2_RANK, dim2 );
+ hsize_t dim2[] = {MSPACE2_DIM}; /* Dimension size of the second dataset
+ (in memory */
+ DataSpace mspace2(MSPACE2_RANK, dim2);
/*
* Select sequence of NPOINTS points in the file dataspace.
*/
hsize_t coord[NPOINTS][FSPACE_RANK]; /* Array to store selected points
from the file dataspace */
- coord[0][0] = 0; coord[0][1] = 0;
- coord[1][0] = 3; coord[1][1] = 3;
- coord[2][0] = 3; coord[2][1] = 5;
- coord[3][0] = 5; coord[3][1] = 6;
+ coord[0][0] = 0;
+ coord[0][1] = 0;
+ coord[1][0] = 3;
+ coord[1][1] = 3;
+ coord[2][0] = 3;
+ coord[2][1] = 5;
+ coord[3][0] = 5;
+ coord[3][1] = 6;
- fspace.selectElements( H5S_SELECT_SET, NPOINTS, (const hsize_t *)coord);
+ fspace.selectElements(H5S_SELECT_SET, NPOINTS, (const hsize_t *)coord);
/*
* Write new selection of points to the dataset.
*/
- int values[] = {53, 59, 61, 67}; /* New values to be written */
- dataset->write( values, PredType::NATIVE_INT, mspace2, fspace );
+ int values[] = {53, 59, 61, 67}; /* New values to be written */
+ dataset->write(values, PredType::NATIVE_INT, mspace2, fspace);
/*
* File dataset should look like this:
@@ -195,12 +203,12 @@ int main (void)
/*
* Open the file.
*/
- file = new H5File( FILE_NAME, H5F_ACC_RDONLY );
+ file = new H5File(FILE_NAME, H5F_ACC_RDONLY);
/*
* Open the dataset.
*/
- dataset = new DataSet( file->openDataSet( DATASET_NAME ));
+ dataset = new DataSet(file->openDataSet(DATASET_NAME));
/*
* Get dataspace of the dataset.
@@ -215,10 +223,14 @@ int main (void)
* 0 59 0 61
*
*/
- start[0] = 1; start[1] = 2;
- block[0] = 1; block[1] = 1;
- stride[0] = 1; stride[1] = 1;
- count[0] = 3; count[1] = 4;
+ start[0] = 1;
+ start[1] = 2;
+ block[0] = 1;
+ block[1] = 1;
+ stride[0] = 1;
+ stride[1] = 1;
+ count[0] = 3;
+ count[1] = 4;
fspace.selectHyperslab(H5S_SELECT_SET, count, start, stride, block);
/*
@@ -234,10 +246,14 @@ int main (void)
* 19 20
* 0 61
*/
- start[0] = 2; start[1] = 4;
- block[0] = 1; block[1] = 1;
- stride[0] = 1; stride[1] = 1;
- count[0] = 6; count[1] = 5;
+ start[0] = 2;
+ start[1] = 4;
+ block[0] = 1;
+ block[1] = 1;
+ stride[0] = 1;
+ stride[1] = 1;
+ count[0] = 6;
+ count[1] = 5;
fspace.selectHyperslab(H5S_SELECT_OR, count, start, stride, block);
/*
@@ -253,15 +269,23 @@ int main (void)
* Select two hyperslabs in memory. Hyperslabs has the same
* size and shape as the selected hyperslabs for the file dataspace.
*/
- start[0] = 0; start[1] = 0;
- block[0] = 1; block[1] = 1;
- stride[0] = 1; stride[1] = 1;
- count[0] = 3; count[1] = 4;
+ start[0] = 0;
+ start[1] = 0;
+ block[0] = 1;
+ block[1] = 1;
+ stride[0] = 1;
+ stride[1] = 1;
+ count[0] = 3;
+ count[1] = 4;
mspace.selectHyperslab(H5S_SELECT_SET, count, start, stride, block);
- start[0] = 1; start[1] = 2;
- block[0] = 1; block[1] = 1;
- stride[0] = 1; stride[1] = 1;
- count[0] = 6; count[1] = 5;
+ start[0] = 1;
+ start[1] = 2;
+ block[0] = 1;
+ block[1] = 1;
+ stride[0] = 1;
+ stride[1] = 1;
+ count[0] = 6;
+ count[1] = 5;
mspace.selectHyperslab(H5S_SELECT_OR, count, start, stride, block);
/*
@@ -289,9 +313,8 @@ int main (void)
* 0 0 0 0 0 0 0 0 0
* 0 0 0 0 0 0 0 0 0
*/
- for (i=0; i < MSPACE_DIM1; i++)
- {
- for(j=0; j < MSPACE_DIM2; j++)
+ for (i = 0; i < MSPACE_DIM1; i++) {
+ for (j = 0; j < MSPACE_DIM2; j++)
cout << matrix_out[i][j] << " ";
cout << endl;
}
@@ -301,28 +324,25 @@ int main (void)
*/
delete dataset;
delete file;
- } // end of try block
+ } // end of try block
- // catch failure caused by the H5File operations
- catch( FileIException error )
- {
+ // catch failure caused by the H5File operations
+ catch (FileIException error) {
error.printErrorStack();
return -1;
- }
+ }
- // catch failure caused by the DataSet operations
- catch( DataSetIException error )
- {
+ // catch failure caused by the DataSet operations
+ catch (DataSetIException error) {
error.printErrorStack();
return -1;
- }
+ }
- // catch failure caused by the DataSpace operations
- catch( DataSpaceIException error )
- {
+ // catch failure caused by the DataSpace operations
+ catch (DataSpaceIException error) {
error.printErrorStack();
return -1;
- }
+ }
- return 0;
+ return 0;
}