view libinterp/octave-value/ov-oncleanup.h @ 18099:6a71e5030df5

Follow coding convention of defining and initializing only 1 variable per line in liboctinterp. * libinterp/corefcn/balance.cc, libinterp/corefcn/bsxfun.cc, libinterp/corefcn/cellfun.cc, libinterp/corefcn/data.cc, libinterp/corefcn/dlmread.cc, libinterp/corefcn/dot.cc, libinterp/corefcn/eig.cc, libinterp/corefcn/find.cc, libinterp/corefcn/gcd.cc, libinterp/corefcn/gl-render.cc, libinterp/corefcn/gl2ps-renderer.cc, libinterp/corefcn/graphics.cc, libinterp/corefcn/kron.cc, libinterp/corefcn/load-save.cc, libinterp/corefcn/lookup.cc, libinterp/corefcn/ls-hdf5.cc, libinterp/corefcn/ls-mat5.cc, libinterp/corefcn/lu.cc, libinterp/corefcn/max.cc, libinterp/corefcn/oct-map.cc, libinterp/corefcn/oct-obj.cc, libinterp/corefcn/oct-stream.cc, libinterp/corefcn/sparse.cc, libinterp/corefcn/sqrtm.cc, libinterp/corefcn/str2double.cc, libinterp/corefcn/strfind.cc, libinterp/corefcn/strfns.cc, libinterp/corefcn/tril.cc, libinterp/corefcn/txt-eng-ft.cc, libinterp/corefcn/variables.cc, libinterp/corefcn/xdiv.cc, libinterp/dldfcn/__delaunayn__.cc, libinterp/dldfcn/qr.cc, libinterp/dldfcn/symrcm.cc, libinterp/dldfcn/tsearch.cc, libinterp/octave-value/ov-base-diag.cc, libinterp/octave-value/ov-base-int.cc, libinterp/octave-value/ov-base-mat.cc, libinterp/octave-value/ov-bool-mat.cc, libinterp/octave-value/ov-bool-sparse.cc, libinterp/octave-value/ov-bool.cc, libinterp/octave-value/ov-cell.cc, libinterp/octave-value/ov-class.cc, libinterp/octave-value/ov-complex.cc, libinterp/octave-value/ov-cx-diag.cc, libinterp/octave-value/ov-cx-mat.cc, libinterp/octave-value/ov-cx-sparse.cc, libinterp/octave-value/ov-fcn-handle.cc, libinterp/octave-value/ov-fcn-inline.cc, libinterp/octave-value/ov-float.cc, libinterp/octave-value/ov-flt-complex.cc, libinterp/octave-value/ov-flt-cx-diag.cc, libinterp/octave-value/ov-flt-cx-mat.cc, libinterp/octave-value/ov-flt-re-diag.cc, libinterp/octave-value/ov-flt-re-mat.cc, libinterp/octave-value/ov-java.cc, libinterp/octave-value/ov-range.cc, libinterp/octave-value/ov-re-diag.cc, libinterp/octave-value/ov-re-mat.cc, libinterp/octave-value/ov-re-sparse.cc, libinterp/octave-value/ov-scalar.cc, libinterp/octave-value/ov-str-mat.cc, libinterp/octave-value/ov-usr-fcn.cc, libinterp/parse-tree/pt-cbinop.cc, libinterp/parse-tree/pt-eval.cc, libinterp/parse-tree/pt-mat.cc: Follow coding convention of defining and initializing only 1 variable per line in liboctinterp.
author Rik <rik@octave.org>
date Thu, 05 Dec 2013 10:50:17 -0800
parents d63878346099
children bcd71a2531d3
line wrap: on
line source

/*

Copyright (C) 2010-2013 VZLU Prague

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/>.

*/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iosfwd>

#include "ov-base.h"
#include "ov-struct.h"
#include "ov.h"

static void
gripe_internal (void)
{
  error ("onCleanup: internal error: cloning nonempty object");
}

class octave_oncleanup : public octave_base_value
{
public:
  octave_oncleanup (void) : fcn () { }

  octave_oncleanup (const octave_value& fcn);

  octave_base_value *clone (void) const
  {
    if (fcn.is_defined ())
      gripe_internal ();

    return empty_clone ();
  }

  octave_base_value *empty_clone (void) const
  {
    return new octave_oncleanup ();
  }

  ~octave_oncleanup (void);

  bool is_defined (void) const { return true; }

  bool is_object (void) const { return true; } // do we want this?

  octave_map map_value (void) const { return scalar_map_value (); }

  octave_scalar_map scalar_map_value (void) const;

  dim_vector dims (void) const
  {
    static dim_vector dv (1, 1);
    return dv;
  }

  bool save_ascii (std::ostream& os);

  bool load_ascii (std::istream& is);

  bool save_binary (std::ostream& os, bool& save_as_floats);

  bool load_binary (std::istream& is, bool swap,
                    oct_mach_info::float_format fmt);

#if defined (HAVE_HDF5)
  bool save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats);

  bool load_hdf5 (hid_t loc_id, const char *name);
#endif

  void print (std::ostream& os, bool pr_as_read_syntax = false) const;

  void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;

private:

  DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA

protected:

  octave_value fcn;
};