Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
HDF5Common.cpp
Go to the documentation of this file.
00001 #include <HDF5Common.hpp>
00002 #include <H5Spublic.h>
00003 #include <cassert>
00004 
00005 namespace moab
00006 {
00007 
00008 bool HDF5_can_append_hyperslabs()
00009 {
00010     hsize_t dim = 100;
00011     hid_t space = H5Screate_simple( 1, &dim, NULL );
00012     bool result = false;
00013 
00014     HDF5_Error_Func_Type fptr = 0;
00015     void* fdata               = 0;
00016 #if defined( H5Eget_auto_vers ) && H5Eget_auto_vers > 1
00017     if( 0 <= H5Eget_auto( H5E_DEFAULT, &fptr, &fdata ) ) H5Eset_auto( H5E_DEFAULT, 0, 0 );
00018 #else
00019     if( 0 <= H5Eget_auto( &fptr, &fdata ) ) H5Eset_auto( 0, 0 );
00020 #endif
00021 
00022     hsize_t start = 1, count = 5;
00023     H5Sselect_hyperslab( space, H5S_SELECT_SET, &start, 0, &count, 0 );
00024     start = 20;
00025     if( 0 <= H5Sselect_hyperslab( space, H5S_SELECT_APPEND, &start, 0, &count, 0 ) ) result = true;
00026 
00027     if( fptr )
00028     {
00029 #if defined( H5Eset_auto_vers ) && H5Eset_auto_vers > 1
00030         H5Eset_auto( H5E_DEFAULT, fptr, fdata );
00031 #else
00032         H5Eset_auto( fptr, fdata );
00033 #endif
00034     }
00035     H5Sclose( space );
00036 
00037     return result;
00038 }
00039 
00040 }  // namespace moab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines