comparison libinterp/octave-value/ov-cx-mat.cc @ 19863: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 928ecc95f395
children
comparison
equal deleted inserted replaced
19862:6b851f6acd55 19863:09ed6f7538dd
37 #include "oct-locbuf.h" 37 #include "oct-locbuf.h"
38 38
39 #include "gripes.h" 39 #include "gripes.h"
40 #include "mxarray.h" 40 #include "mxarray.h"
41 #include "oct-obj.h" 41 #include "oct-obj.h"
42 #include "oct-hdf5.h"
42 #include "oct-stream.h" 43 #include "oct-stream.h"
43 #include "ops.h" 44 #include "ops.h"
44 #include "ov-base.h" 45 #include "ov-base.h"
45 #include "ov-base-mat.h" 46 #include "ov-base-mat.h"
46 #include "ov-base-mat.cc" 47 #include "ov-base-mat.cc"
560 matrix = m; 561 matrix = m;
561 } 562 }
562 return true; 563 return true;
563 } 564 }
564 565
566 bool
567 octave_complex_matrix::save_hdf5 (octave_hdf5_id loc_id, const char *name,
568 bool save_as_floats)
569 {
565 #if defined (HAVE_HDF5) 570 #if defined (HAVE_HDF5)
566 571
567 bool
568 octave_complex_matrix::save_hdf5 (hid_t loc_id, const char *name,
569 bool save_as_floats)
570 {
571 dim_vector dv = dims (); 572 dim_vector dv = dims ();
572 int empty = save_hdf5_empty (loc_id, name, dv); 573 int empty = save_hdf5_empty (loc_id, name, dv);
573 if (empty) 574 if (empty)
574 return (empty > 0); 575 return (empty > 0);
575 576
649 H5Dclose (data_hid); 650 H5Dclose (data_hid);
650 H5Tclose (type_hid); 651 H5Tclose (type_hid);
651 H5Sclose (space_hid); 652 H5Sclose (space_hid);
652 653
653 return retval; 654 return retval;
655
656 #else
657 gripe_save ("hdf5");
658 return false;
659 #endif
654 } 660 }
655 661
656 bool 662 bool
657 octave_complex_matrix::load_hdf5 (hid_t loc_id, const char *name) 663 octave_complex_matrix::load_hdf5 (octave_hdf5_id loc_id, const char *name)
658 { 664 {
659 bool retval = false; 665 bool retval = false;
666
667 #if defined (HAVE_HDF5)
660 668
661 dim_vector dv; 669 dim_vector dv;
662 int empty = load_hdf5_empty (loc_id, name, dv); 670 int empty = load_hdf5_empty (loc_id, name, dv);
663 if (empty > 0) 671 if (empty > 0)
664 matrix.resize (dv); 672 matrix.resize (dv);
723 731
724 H5Tclose (complex_type); 732 H5Tclose (complex_type);
725 H5Sclose (space_id); 733 H5Sclose (space_id);
726 H5Dclose (data_hid); 734 H5Dclose (data_hid);
727 735
728 return retval; 736 #else
729 } 737 gripe_load ("hdf5");
730
731 #endif 738 #endif
739
740 return retval;
741 }
732 742
733 void 743 void
734 octave_complex_matrix::print_raw (std::ostream& os, 744 octave_complex_matrix::print_raw (std::ostream& os,
735 bool pr_as_read_syntax) const 745 bool pr_as_read_syntax) const
736 { 746 {