comparison libinterp/octave-value/ov-cell.cc @ 19897:09ed6f7538dd

avoid needing to include hdf5 in public header files (bug #44370, #43180) * oct-hdf5-id.cc, oct-hdf5-id.h: New files. * libinterp/corefcn/module.mk: Update. * libgui/src/module.mk (src_libgui_src_la_CPPFLAGS): Remove $(HDF5_CPPFLAGS) from the list. * load-save.h (enum load_save_format_type): Always include LS_HDF5 in the list of values. * ls-hdf5.cc (read_hdf5_data, save_hdf5_data): Call check_hdf5_id_type. * oct-hdf5.h: Also #define HDF5_SAVE_TYPE. * ov.h, ov-base.h: Include oct-hdf5-id.h instead of oct-hdf5.h. Always declare load_hdf5 and save_hdf5 functions. * ov-base-int.cc, ov-base-int.h, ov-base.cc, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-cell.cc, ov-cell.h, ov-class.cc, ov-class.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-cx-sparse.cc, ov-cx-sparse.h, ov-fcn-handle.cc, ov-fcn-handle.h, ov-fcn-inline.cc, ov-fcn-inline.h, ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-lazy-idx.h, ov-oncleanup.cc, ov-oncleanup.h, ov-range.cc ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, ov-struct.h, ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc: Move #ifdef HAVE_HDF5 inside load_hdf5 and save_hdf5 functions. Always declare and define load_hdf5 and save_hdf5 functions.
author John W. Eaton <jwe@octave.org> and Mike Miller <mtmiller@ieee.org>
date Thu, 26 Feb 2015 10:49:20 -0500
parents 4197fc428c7d
children 075a5e2e1ba5
comparison
equal deleted inserted replaced
19896:6b851f6acd55 19897:09ed6f7538dd
40 #include "defun.h" 40 #include "defun.h"
41 #include "error.h" 41 #include "error.h"
42 #include "mxarray.h" 42 #include "mxarray.h"
43 #include "ov-cell.h" 43 #include "ov-cell.h"
44 #include "oct-obj.h" 44 #include "oct-obj.h"
45 #include "oct-hdf5.h"
45 #include "unwind-prot.h" 46 #include "unwind-prot.h"
46 #include "utils.h" 47 #include "utils.h"
47 #include "ov-base-mat.h" 48 #include "ov-base-mat.h"
48 #include "ov-base-mat.cc" 49 #include "ov-base-mat.cc"
49 #include "ov-re-mat.h" 50 #include "ov-re-mat.h"
1063 { 1064 {
1064 clear_cellstr_cache (); 1065 clear_cellstr_cache ();
1065 return matrix.mex_get_data (); 1066 return matrix.mex_get_data ();
1066 } 1067 }
1067 1068
1069 bool
1070 octave_cell::save_hdf5 (octave_hdf5_id loc_id, const char *name, bool save_as_floats)
1071 {
1068 #if defined (HAVE_HDF5) 1072 #if defined (HAVE_HDF5)
1069 1073
1070 bool
1071 octave_cell::save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats)
1072 {
1073 dim_vector dv = dims (); 1074 dim_vector dv = dims ();
1074 int empty = save_hdf5_empty (loc_id, name, dv); 1075 int empty = save_hdf5_empty (loc_id, name, dv);
1075 if (empty) 1076 if (empty)
1076 return (empty > 0); 1077 return (empty > 0);
1077 1078
1154 } 1155 }
1155 1156
1156 H5Gclose (data_hid); 1157 H5Gclose (data_hid);
1157 1158
1158 return true; 1159 return true;
1160
1161 #else
1162 gripe_save ("hdf5");
1163 return false;
1164 #endif
1159 } 1165 }
1160 1166
1161 bool 1167 bool
1162 octave_cell::load_hdf5 (hid_t loc_id, const char *name) 1168 octave_cell::load_hdf5 (octave_hdf5_id loc_id, const char *name)
1163 { 1169 {
1170 bool retval = false;
1171
1172 #if defined (HAVE_HDF5)
1173
1164 clear_cellstr_cache (); 1174 clear_cellstr_cache ();
1165
1166 bool retval = false;
1167 1175
1168 dim_vector dv; 1176 dim_vector dv;
1169 int empty = load_hdf5_empty (loc_id, name, dv); 1177 int empty = load_hdf5_empty (loc_id, name, dv);
1170 if (empty > 0) 1178 if (empty > 0)
1171 matrix.resize (dv); 1179 matrix.resize (dv);
1258 { 1266 {
1259 matrix = m; 1267 matrix = m;
1260 retval = true; 1268 retval = true;
1261 } 1269 }
1262 1270
1263 return retval; 1271 #else
1264 } 1272 gripe_load ("hdf5");
1265
1266 #endif 1273 #endif
1274
1275 return retval;
1276 }
1267 1277
1268 DEFUN (iscell, args, , 1278 DEFUN (iscell, args, ,
1269 "-*- texinfo -*-\n\ 1279 "-*- texinfo -*-\n\
1270 @deftypefn {Built-in Function} {} iscell (@var{x})\n\ 1280 @deftypefn {Built-in Function} {} iscell (@var{x})\n\
1271 Return true if @var{x} is a cell array object.\n\ 1281 Return true if @var{x} is a cell array object.\n\