Public Member Functions | |
OCTINTERP_API | cdef_class_rep (const std::list< cdef_class > &superclasses) |
cdef_class_rep (void) | |
~cdef_class_rep (void)=default | |
virtual Array< cdef_object > | array_value (void) const |
void | break_closure_cycles (const std::shared_ptr< stack_frame > &frame) |
OCTINTERP_API std::string | class_name (void) const |
cdef_object_rep * | clone (void) const |
OCTINTERP_API octave_value | construct (const octave_value_list &args) |
OCTINTERP_API cdef_object | construct_object (const octave_value_list &args) |
cdef_object_rep * | copy (void) const |
OCTINTERP_API void | delete_object (const cdef_object &obj) |
void | destroy (void) |
dim_vector | dims (void) const |
void | doc_string (const std::string &txt) |
std::string | doc_string (void) const |
cdef_object_rep * | empty_clone (void) const |
void | file_name (const std::string &nm) |
std::string | file_name (void) const |
OCTINTERP_API cdef_method | find_method (const std::string &nm, bool local=false) |
OCTINTERP_API cdef_property | find_property (const std::string &nm) |
octave_value | get (const std::string &pname) const |
OCTINTERP_API cdef_class | get_class (void) const |
std::string | get_directory (void) const |
OCTINTERP_API octave_value | get_method (const std::string &name) const |
OCTINTERP_API std::map< std::string, cdef_method > | get_method_map (bool only_inherited, bool include_ctor) |
OCTINTERP_API Cell | get_methods (bool include_ctor) |
std::string | get_name (void) const |
OCTINTERP_API string_vector | get_names (void) |
OCTINTERP_API Cell | get_properties (int mode) |
octave_value | get_property (octave_idx_type idx, const std::string &pname) const |
OCTINTERP_API std::map< std::string, cdef_property > | get_property_map (int mode) |
OCTINTERP_API void | initialize_object (cdef_object &obj) |
OCTINTERP_API void | install_method (const cdef_method &meth) |
OCTINTERP_API void | install_property (const cdef_property &prop) |
bool | is_abstract (void) const |
virtual bool | is_array (void) const |
bool | is_class (void) const |
bool | is_constructed (void) const |
OCTINTERP_API bool | is_constructed_for (const cdef_class &cls) const |
bool | is_handle_class (void) const |
bool | is_handle_object (void) const |
bool | is_meta_class (void) const |
bool | is_meta_object (void) const |
virtual bool | is_method (void) const |
virtual bool | is_package (void) const |
OCTINTERP_API bool | is_partially_constructed_for (const cdef_class &cls) const |
virtual bool | is_property (void) const |
bool | is_sealed (void) const |
bool | is_valid (void) const |
virtual bool | is_value_object (void) const |
OCTINTERP_API cdef_object_rep * | make_array (void) const |
virtual string_vector | map_keys (void) const |
OCTINTERP_API void | mark_as_constructed (const cdef_class &cls) |
void | mark_as_constructed (void) |
void | mark_as_handle_class (void) |
void | mark_as_meta_class (void) |
OCTINTERP_API void | mark_for_construction (const cdef_class &) |
bool | meta_accepts_postfix_index (char type) const |
OCTINTERP_API void | meta_release (void) |
OCTINTERP_API octave_value_list | meta_subsref (const std::string &type, const std::list< octave_value_list > &idx, int nargout) |
cdef_class_rep & | operator= (const cdef_class_rep &)=delete |
void | put (const std::string &pname, const octave_value &val) |
OCTINTERP_API void | release (const cdef_object &obj) |
OCTINTERP_API void | run_constructor (cdef_object &obj, const octave_value_list &args) |
OCTINTERP_API void | set_class (const cdef_class &cls) |
void | set_directory (const std::string &dir) |
void | set_name (const std::string &nm) |
void | set_property (octave_idx_type idx, const std::string &pname, const octave_value &pval) |
octave_idx_type | static_count (void) const |
OCTINTERP_API octave_value | subsasgn (const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs) |
OCTINTERP_API octave_value_list | subsref (const std::string &type, const std::list< octave_value_list > &idx, int nargout, std::size_t &skip, const cdef_class &context, bool auto_add) |
Protected Attributes | |
refcount< octave_idx_type > | m_count |
std::map< cdef_class, std::list< cdef_class > > | m_ctor_list |
octave_scalar_map | m_map |
Private Types | |
typedef std::map< std::string, cdef_method >::const_iterator | method_const_iterator |
typedef std::map< std::string, cdef_method >::iterator | method_iterator |
typedef std::map< std::string, cdef_property >::const_iterator | property_const_iterator |
typedef std::map< std::string, cdef_property >::iterator | property_iterator |
Private Member Functions | |
cdef_class_rep (const cdef_class_rep &c)=default | |
OCTAVE_NORETURN void | err_invalid_object (const char *who) const |
OCTINTERP_API void | find_methods (std::map< std::string, cdef_method > &meths, bool only_inherited, bool include_ctor=false) |
OCTINTERP_API void | find_names (std::set< std::string > &names, bool all) |
OCTINTERP_API void | find_properties (std::map< std::string, cdef_property > &props, int mode=0) |
OCTINTERP_API void | load_all_methods (void) |
cdef_class | wrap (void) |
Private Attributes | |
std::string | m_directory |
std::string | m_doc_string |
std::string | m_file_name |
bool | m_handle_class |
std::list< cdef_class > | m_implicit_ctor_list |
cdef_object | m_klass |
octave_idx_type | m_member_count |
bool | m_meta |
std::map< std::string, cdef_method > | m_method_map |
std::map< std::string, cdef_property > | m_property_map |
Definition at line 57 of file cdef-class.h.
|
private |
Definition at line 229 of file cdef-class.h.
|
private |
Definition at line 228 of file cdef-class.h.
|
private |
Definition at line 231 of file cdef-class.h.
|
private |
Definition at line 230 of file cdef-class.h.
|
inline |
Definition at line 61 of file cdef-class.h.
cdef_class::cdef_class_rep::cdef_class_rep | ( | const std::list< cdef_class > & | superclasses | ) |
Definition at line 83 of file cdef-class.cc.
References m_implicit_ctor_list, cdef_object_scalar::put(), and to_ov().
|
default |
|
privatedefault |
|
inlinevirtualinherited |
Reimplemented in cdef_object_array.
Definition at line 97 of file cdef-object.h.
Referenced by cdef_object::array_value().
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 504 of file cdef-object.cc.
References octave_value::break_closure_cycles(), octave_scalar_map::contents(), cdef_object_scalar::m_map, and octave_scalar_map::nfields().
|
inherited |
Definition at line 120 of file cdef-object.cc.
References cdef_object_rep::get_class(), and cdef_class::get_name().
Referenced by cdef_object::class_name(), cdef_object_array::subsasgn(), and cdef_object_array::subsref().
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 558 of file cdef-object.h.
References cdef_object_rep::m_count.
octave_value cdef_class::cdef_class_rep::construct | ( | const octave_value_list & | args | ) |
Definition at line 720 of file cdef-class.cc.
References cdef_class::construct_object(), octave_value(), cdef_object::ok(), and to_ov().
cdef_object cdef_class::cdef_class_rep::construct_object | ( | const octave_value_list & | args | ) |
Definition at line 731 of file cdef-class.cc.
References cdef_object::cdef_object(), __get_cdef_manager__(), error(), cdef_class::get_name(), cdef_class::initialize_object(), cdef_class::is_abstract(), cdef_class::is_handle_class(), cdef_class::is_meta_class(), cdef_manager::make_class(), cdef_manager::make_method(), cdef_manager::make_package(), cdef_manager::make_property(), cdef_manager::meta_class(), cdef_manager::meta_method(), cdef_manager::meta_package(), cdef_manager::meta_property(), cdef_object::ok(), panic_impossible, cdef_class::run_constructor(), and cdef_object::set_class().
|
inlinevirtual |
Reimplemented from cdef_object_rep.
Definition at line 72 of file cdef-class.h.
void cdef_class::cdef_class_rep::delete_object | ( | const cdef_object & | obj | ) |
Definition at line 530 of file cdef-class.cc.
References octave_value::cell_value(), cdef_class::delete_object(), cdef_method::execute(), cdef_class::find_method(), cdef_object::get(), cdef_class::get_name(), cdef_method::is_defined_in_class(), lookup_class(), Array< T, Alloc >::numel(), and cdef_object::ok().
|
inlinevirtual |
Reimplemented from cdef_object_rep.
Definition at line 143 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 471 of file cdef-object.h.
|
inline |
Definition at line 162 of file cdef-class.h.
|
inline |
Definition at line 164 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 371 of file cdef-object.h.
|
inlineprivateinherited |
Definition at line 195 of file cdef-object.h.
References error().
Referenced by cdef_object_rep::get_class().
|
inline |
Definition at line 166 of file cdef-class.h.
References tree_classdef::m_file_name.
|
inline |
Definition at line 168 of file cdef-class.h.
References tree_classdef::m_file_name.
cdef_method cdef_class::cdef_class_rep::find_method | ( | const std::string & | nm, |
bool | local = false |
||
) |
Definition at line 92 of file cdef-class.cc.
References octave_value::cell_value(), cdef_class::find_method(), cdef_object::get(), lookup_class(), Array< T, Alloc >::numel(), and cdef_object::ok().
Referenced by cdef_class::find_method().
|
private |
Definition at line 315 of file cdef-class.cc.
References octave_value::cell_value(), find_methods(), cdef_object::get(), cdef_class::get_rep(), octave_value::is_string(), lookup_class(), Array< T, Alloc >::numel(), and octave_value::string_value().
Referenced by find_methods().
|
private |
Definition at line 465 of file cdef-class.cc.
References octave_value::cell_value(), find_names(), cdef_object::get(), cdef_class::get_rep(), octave_value::is_string(), lookup_class(), Array< T, Alloc >::numel(), and octave_value::string_value().
Referenced by find_names().
|
private |
Definition at line 424 of file cdef-class.cc.
References octave_value::cell_value(), find_properties(), cdef_object::get(), cdef_class::get_rep(), octave_value::is_string(), lookup_class(), Array< T, Alloc >::numel(), cdef_class::property_all, cdef_class::property_inherited, and octave_value::string_value().
Referenced by find_properties().
cdef_property cdef_class::cdef_class_rep::find_property | ( | const std::string & | nm | ) |
Definition at line 359 of file cdef-class.cc.
References octave_value::cell_value(), cdef_class::find_property(), cdef_object::get(), lookup_class(), Array< T, Alloc >::numel(), and cdef_object::ok().
Referenced by cdef_class::find_property().
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 480 of file cdef-object.h.
References error(), and Array< T, Alloc >::numel().
Referenced by cdef_property::cdef_property_rep::get_value().
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 189 of file cdef-object.cc.
References cdef_class, and cdef_object_base::m_klass.
Referenced by handle_cdef_object::~handle_cdef_object(), value_cdef_object::~value_cdef_object(), cdef_object_array::fill_empty_values(), cdef_object_base::make_array(), cdef_object_base::set_class(), cdef_object_array::subsasgn(), cdef_object_scalar::subsasgn(), cdef_object_array::subsref(), and cdef_object_scalar::subsref().
|
inline |
Definition at line 110 of file cdef-class.h.
octave_value cdef_class::cdef_class_rep::get_method | ( | const std::string & | name | ) | const |
Definition at line 708 of file cdef-class.cc.
References octave_value().
std::map< std::string, cdef_method > cdef_class::cdef_class_rep::get_method_map | ( | bool | only_inherited, |
bool | include_ctor | ||
) |
Definition at line 304 of file cdef-class.cc.
Cell cdef_class::cdef_class_rep::get_methods | ( | bool | include_ctor | ) |
Definition at line 287 of file cdef-class.cc.
References to_ov().
|
inline |
Definition at line 76 of file cdef-class.h.
Referenced by cdef_method::get_name(), cdef_package::get_name(), and cdef_property::get_name().
string_vector cdef_class::cdef_class_rep::get_names | ( | void | ) |
Definition at line 518 of file cdef-class.cc.
References string_vector::sort().
Cell cdef_class::cdef_class_rep::get_properties | ( | int | mode | ) |
Definition at line 397 of file cdef-class.cc.
References cdef_class::get_property_map(), and to_ov().
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 500 of file cdef-object.h.
References error(), and cdef_object::get().
std::map< std::string, cdef_property > cdef_class::cdef_class_rep::get_property_map | ( | int | mode | ) |
Definition at line 414 of file cdef-class.cc.
void cdef_class::cdef_class_rep::initialize_object | ( | cdef_object & | obj | ) |
Definition at line 644 of file cdef-class.cc.
References cdef_object::get(), octave_value::is_defined(), lookup_classes(), cdef_object::mark_for_construction(), and cdef_object::put().
void cdef_class::cdef_class_rep::install_method | ( | const cdef_method & | meth | ) |
Definition at line 232 of file cdef-class.cc.
References tree_statement_list::accept(), octave_user_code::body(), error(), base_list< elt_type >::front(), ctor_analyzer::get_constructor_list(), cdef_method::get_function(), cdef_method::get_name(), cdef_method::is_constructor(), octave_value::is_defined(), tree_decl_elt::name(), octave_user_function::return_list(), base_list< elt_type >::size(), and octave_value::user_function_value().
void cdef_class::cdef_class_rep::install_property | ( | const cdef_property & | prop | ) |
Definition at line 389 of file cdef-class.cc.
References cdef_property::get_name().
|
inline |
Definition at line 81 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented in cdef_object_array.
Definition at line 89 of file cdef-object.h.
Referenced by cdef_object::is_array().
|
inlinevirtual |
Reimplemented from cdef_meta_object_rep.
Definition at line 74 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 528 of file cdef-object.h.
Referenced by cdef_object_scalar::is_constructed_for(), and cdef_object_scalar::is_partially_constructed_for().
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 707 of file cdef-object.cc.
References cdef_object_scalar::is_constructed(), and cdef_object_scalar::m_ctor_list.
|
inline |
Definition at line 139 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 572 of file cdef-object.h.
|
inline |
Definition at line 160 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 628 of file cdef-object.h.
|
inlinevirtualinherited |
Reimplemented in cdef_method::cdef_method_rep.
Definition at line 634 of file cdef-object.h.
|
inlinevirtualinherited |
Reimplemented in cdef_package::cdef_package_rep.
Definition at line 636 of file cdef-object.h.
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 714 of file cdef-object.cc.
References cdef_object_scalar::is_constructed(), and cdef_object_scalar::m_ctor_list.
|
inlinevirtualinherited |
Reimplemented in cdef_property::cdef_property_rep.
Definition at line 632 of file cdef-object.h.
|
inline |
Definition at line 83 of file cdef-class.h.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 570 of file cdef-object.h.
|
inlinevirtualinherited |
Reimplemented in value_cdef_object.
Definition at line 91 of file cdef-object.h.
Referenced by cdef_object::is_value_object().
|
private |
Definition at line 281 of file cdef-class.cc.
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 206 of file cdef-object.cc.
References cdef_object_base::get_class(), and r.
|
virtualinherited |
Definition at line 126 of file cdef-object.cc.
References cdef_object_rep::get_class(), cdef_class::get_names(), and cdef_object::ok().
Referenced by cdef_object::map_keys().
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 733 of file cdef-object.cc.
References cdef_object_scalar::m_ctor_list.
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 524 of file cdef-object.h.
|
inline |
Definition at line 137 of file cdef-class.h.
|
inline |
Definition at line 158 of file cdef-class.h.
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 695 of file cdef-object.cc.
References octave_value::cell_value(), cdef_object::get(), cdef_class::get_name(), lookup_classes(), and cdef_object_scalar::m_ctor_list.
|
inlinevirtual |
Reimplemented from cdef_meta_object_rep.
Definition at line 120 of file cdef-class.h.
|
virtual |
Reimplemented from cdef_meta_object_rep.
Definition at line 636 of file cdef-class.cc.
References __get_cdef_manager__(), and cdef_manager::unregister_class().
|
virtual |
Reimplemented from cdef_meta_object_rep.
Definition at line 556 of file cdef-class.cc.
References cdef_class::construct(), octave_value_list::empty(), error(), cdef_method::execute(), cdef_class::find_method(), cdef_class::find_property(), cdef_property::get_value(), cdef_property::is_constant(), cdef_method::is_static(), and cdef_object::ok().
|
delete |
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 475 of file cdef-object.h.
Referenced by cdef_class_rep().
|
inherited |
Definition at line 44 of file cdef-object.cc.
References __get_interpreter__(), cdef_class::delete_object(), cdef_object_rep::destroy(), cdef_object_rep::get_class(), interpreter_try(), cdef_object_rep::is_handle_object(), cdef_object_rep::is_meta_object(), cdef_object_rep::m_count, octave_interrupt_state, action_container::protect_var(), quit_allowed, interpreter::recover_from_exception(), cdef_object_rep::static_count(), and warning().
Referenced by cdef_object::~cdef_object(), and cdef_object::operator=().
void cdef_class::cdef_class_rep::run_constructor | ( | cdef_object & | obj, |
const octave_value_list & | args | ||
) |
Definition at line 672 of file cdef-class.cc.
References error(), cdef_method::execute(), cdef_class::find_method(), get_base_name(), cdef_class::get_name(), octave_value_list::length(), lookup_class(), cdef_object::mark_as_constructed(), cdef_object::ok(), octave_value_list::prepend(), cdef_class::run_constructor(), to_cdef(), and to_ov().
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 195 of file cdef-object.cc.
References cdef_object_base::get_class(), cdef_object_base::m_klass, and cdef_object::ok().
|
inline |
Definition at line 108 of file cdef-class.h.
|
inline |
Definition at line 79 of file cdef-class.h.
Referenced by cdef_method::cdef_method(), cdef_package::cdef_package(), and cdef_property::cdef_property().
|
inlinevirtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 490 of file cdef-object.h.
References error(), and cdef_object::put().
|
inlinevirtual |
Reimplemented from cdef_object_rep.
Definition at line 141 of file cdef-class.h.
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 615 of file cdef-object.cc.
References octave_value::assign(), cdef_object_rep::cdef_object, octave_value::class_name(), error(), cdef_class::find_property(), cdef_object_base::get_class(), cdef_property::get_value(), cdef_property::is_constant(), cdef_object_rep::is_handle_object(), cdef_object_rep::m_count, cdef_object::ok(), octave_value::op_asn_eq, cdef_object::set_class(), cdef_property::set_value(), cdef_object::subsasgn(), to_cdef(), and to_ov().
|
virtualinherited |
Reimplemented from cdef_object_rep.
Definition at line 511 of file cdef-object.cc.
References cdef_object_rep::cdef_object, octave_value_list::empty(), error(), cdef_method::execute(), cdef_class::find_method(), cdef_class::find_property(), cdef_object_base::get_class(), cdef_property::get_value(), cdef_property::is_constant(), cdef_method::is_static(), cdef_object_rep::m_count, cdef_object::ok(), cdef_object::set_class(), cdef_object::subsref(), and to_ov().
|
inlineprivate |
Definition at line 184 of file cdef-class.h.
References cdef_class.
|
protectedinherited |
Definition at line 187 of file cdef-object.h.
Referenced by cdef_object::cdef_object(), handle_cdef_object::clone(), cdef_object::make_unique(), cdef_object::operator=(), cdef_object_rep::release(), cdef_object_array::subsasgn(), cdef_object_scalar::subsasgn(), cdef_object_array::subsref(), and cdef_object_scalar::subsref().
|
protectedinherited |
Definition at line 536 of file cdef-object.h.
Referenced by cdef_object_scalar::is_constructed_for(), cdef_object_scalar::is_partially_constructed_for(), cdef_object_scalar::mark_as_constructed(), and cdef_object_scalar::mark_for_construction().
|
private |
Definition at line 193 of file cdef-class.h.
|
private |
Definition at line 195 of file cdef-class.h.
|
private |
Definition at line 197 of file cdef-class.h.
|
private |
Definition at line 214 of file cdef-class.h.
|
private |
Definition at line 220 of file cdef-class.h.
Referenced by cdef_class_rep().
|
privateinherited |
Definition at line 388 of file cdef-object.h.
Referenced by cdef_object_base::get_class(), and cdef_object_base::set_class().
|
protectedinherited |
Definition at line 533 of file cdef-object.h.
Referenced by cdef_object_scalar::break_closure_cycles().
|
private |
Definition at line 209 of file cdef-class.h.
|
private |
Definition at line 224 of file cdef-class.h.
|
private |
Definition at line 201 of file cdef-class.h.
|
private |
Definition at line 205 of file cdef-class.h.