26#if ! defined (octave_ov_class_h)
27#define octave_ov_class_h 1
29#include "octave-config.h"
47OCTAVE_END_NAMESPACE(octave)
59 m_parent_list (), m_obsolete_copies (0)
64 m_parent_list (), m_obsolete_copies (0)
68 const std::list<std::string>& plist)
70 m_parent_list (plist), m_obsolete_copies (0)
79 m_parent_list (s.m_parent_list), m_obsolete_copies (0) { }
93 break_closure_cycles (
const std::shared_ptr<octave::stack_frame>& frame);
97 OCTINTERP_API
Matrix size ();
107 const std::list<octave_value_list>& idx)
114 subsref (
const std::string& type,
const std::list<octave_value_list>& idx,
118 numeric_conv (
const Cell& val,
const std::string& type);
121 { m_map.assign (k, rhs); }
124 subsasgn (
const std::string& type,
const std::list<octave_value_list>& idx,
128 undef_subsasgn (
const std::string& type,
129 const std::list<octave_value_list>& idx,
132 OCTINTERP_API octave::idx_vector
133 index_vector (
bool require_integers =
false)
const;
137 OCTINTERP_API std::size_t byte_size ()
const;
149 std::size_t
nparents ()
const {
return m_parent_list.size (); }
171 OCTINTERP_API
bool is_true ()
const;
178 {
return m_parent_list; }
187 OCTINTERP_API
bool is_instance_of (
const std::string&)
const;
189 OCTINTERP_API
string_vector string_vector_value (
bool pad)
const;
191 OCTINTERP_API
void print (std::ostream& os,
bool pr_as_read_syntax =
false);
193 OCTINTERP_API
void print_raw (std::ostream& os,
194 bool pr_as_read_syntax =
false)
const;
196 OCTINTERP_API
bool reconstruct_exemplar ();
198 OCTINTERP_API
static void clear_exemplar_map ();
200 OCTINTERP_API
bool reconstruct_parents ();
202 OCTINTERP_API
bool save_ascii (std::ostream& os);
204 OCTINTERP_API
bool load_ascii (std::istream& is);
206 OCTINTERP_API
bool save_binary (std::ostream& os,
bool save_as_floats);
209 load_binary (std::istream& is,
bool swap,
210 octave::mach_info::float_format fmt);
213 save_hdf5 (
octave_hdf5_id loc_id,
const char *name,
bool save_as_floats);
218 OCTINTERP_API
mxArray * as_mxArray (
bool interleaved)
const;
231 static OCTINTERP_API
void register_type (octave::type_info&);
236 static const std::string s_t_name;
237 std::string m_c_name;
238 std::list<std::string> m_parent_list;
240 OCTINTERP_API
bool in_class_method ();
241 OCTINTERP_API std::string get_current_method_class ();
244 subsasgn_common (
const octave_value& obj,
const std::string& type,
245 const std::list<octave_value_list>& idx,
248 int m_obsolete_copies;
262 : m_field_names (
x.m_field_names),
263 m_parent_class_names (
x.m_parent_class_names) { }
269 m_field_names =
x.m_field_names;
270 m_parent_class_names =
x.m_parent_class_names;
277 std::size_t
nparents ()
const {
return m_parent_class_names.size (); }
281 std::list<std::string>
parents ()
const {
return m_parent_class_names; }
283 OCTINTERP_API
bool compare (
const octave_value& obj)
const;
288 std::list<std::string> m_parent_class_names;
294 typedef std::map<std::string, exemplar_info>::iterator
296 typedef std::map<std::string, exemplar_info>::const_iterator
Vector representing the dimensions (size) of an Array.
octave_idx_type numel(int n=0) const
Number of elements that a matrix with this dimensions would have.
virtual octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
string_vector fields() const
octave_idx_type nfields() const
std::size_t nparents() const
exemplar_info(const exemplar_info &x)
std::list< std::string > parents() const
octave_base_value * clone() const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
octave_base_value * empty_clone() const
octave_idx_type nfields() const
std::map< std::string, exemplar_info >::iterator exemplar_iterator
string_vector parent_class_names() const
std::string type_name() const
std::map< std::string, exemplar_info >::const_iterator exemplar_const_iterator
static std::string static_type_name()
octave_idx_type numel() const
octave_value resize(const dim_vector &dv, bool=false) const
std::string class_name() const
static std::map< std::string, exemplar_info > exemplar_map
static std::string static_class_name()
octave_class(const octave_map &m, const std::string &id, const std::list< std::string > &plist)
std::size_t nparents() const
octave_map map_value() const
static int static_type_id()
octave_value reshape(const dim_vector &new_dims) const
std::list< std::string > parent_class_name_list() const
octave_class(const octave_class &s)
void assign(const std::string &k, const octave_value &rhs)
octave_class(const octave_map &m, const std::string &id)
void resize(const dim_vector &dv, bool fill=false)
octave_map reshape(const dim_vector &dv) const
octave_idx_type length() const
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
F77_RET_T const F77_DBLE * x
bool is_true(const std::string &s)
int register_type(const std::string &t_name, const std::string &c_name, const octave_value &val)