view libinterp/corefcn/oct-hdf5-types.h @ 22028:5c949eecb6dd

use int64_t for octave_hdf5_id (bug #47858) * oct-hdf5-types.h (octave_hdf5_id): Use int64_t. * ls-hdf5.cc (check_hdf5_id_value): New static function. * ls-hdf5.h, ls-hdf5.cc (hdf5_read_next_data_internal): Rename from hdf5_read_next_data. Use HDF5 types directly. (hdf5_read_next_data): Now a wrapper around hdf5_read_next_data_internal. Use octave HDF5 types in the interface. (hdf5_h5g_iterate): New function. (read_hdf5_data): Pass hdf5_read_next_data_internal instead of hdf5_read_next_data to H5Giterate. * ov-cell.cc (octave_cell::load_hdf5): Call hdf5_h5g_iterate wrapper function instead of calling H5giterate directly. * ov-class.cc (octave_class::load_hdf5): Likewise. * ov-fcn-handle.cc (octave_fcn_handle::load_hdf5): Likewise. * ov-struct.cc (octave_struct::load_hdf5): Likewise.
author Stefan Miereis <stefan.miereis@gmx.de>
date Sat, 02 Jul 2016 10:19:44 -0400
parents aba2e6293dd8
children bac0d6f07a3e
line wrap: on
line source

/*

Copyright (C) 2015 John W. Eaton

This file is part of Octave.

Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

Octave is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING.  If not, see
<http://www.gnu.org/licenses/>.

*/

#if ! defined (octave_oct_hdf5_types_h)
#define octave_oct_hdf5_types_h 1

#include "octave-config.h"

#if defined (__cplusplus)
// This function only needs to be defined for C++.
extern bool check_hdf5_types (bool warn = true);
#endif

// Available for C and C++.

typedef int64_t octave_hdf5_id;
typedef int octave_hdf5_err;

#if defined (__cplusplus)
extern "C" {
#endif

// These are defined in a C file, so they should have C-linkage in
// both C and C++ source files.

extern const octave_hdf5_id octave_H5E_DEFAULT;
extern const octave_hdf5_id octave_H5P_DEFAULT;
extern const octave_hdf5_id octave_H5S_ALL;

#if defined (__cplusplus)
}
#endif

#endif