#include "cdef-manager.h"
Public Member Functions | |
cdef_manager (const cdef_manager &)=delete | |
OCTINTERP_API | cdef_manager (interpreter &interp) |
~cdef_manager (void)=default | |
OCTINTERP_API cdef_class | find_class (const std::string &name, bool error_if_not_found=true, bool load_if_not_found=true) |
OCTINTERP_API octave_value | find_method (const std::string &class_name, const std::string &name) const |
OCTINTERP_API octave_value | find_method_symbol (const std::string &method_name, const std::string &class_name) |
OCTINTERP_API cdef_package | find_package (const std::string &name, bool error_if_not_found=true, bool load_if_not_found=true) |
OCTINTERP_API octave_value | find_package_symbol (const std::string &pack_name) |
OCTINTERP_API cdef_property | make_attribute (const cdef_class &cls, const std::string &name) |
OCTINTERP_API cdef_class | make_class (const std::string &name, const cdef_class &super) |
OCTINTERP_API cdef_class | make_class (const std::string &name, const std::list< cdef_class > &super_list=std::list< cdef_class >()) |
OCTINTERP_API cdef_class | make_meta_class (const std::string &name, const cdef_class &super) |
OCTINTERP_API cdef_method | make_method (const cdef_class &cls, const std::string &name, const octave_value &fcn, const std::string &m_access="public", bool is_static=false) |
OCTINTERP_API cdef_method | make_method (const cdef_class &cls, const std::string &name, octave_builtin::fcn ff, const std::string &m_access="public", bool is_static=false) |
OCTINTERP_API cdef_method | make_method (const cdef_class &cls, const std::string &name, octave_builtin::meth mm, const std::string &m_access="public", bool is_static=false) |
OCTINTERP_API cdef_package | make_package (const std::string &nm, const std::string &parent="") |
OCTINTERP_API cdef_property | make_property (const cdef_class &cls, const std::string &name, const octave_value &get_method=Matrix(), const std::string &get_access="public", const octave_value &set_method=Matrix(), const std::string &set_access="public") |
const cdef_package & | meta (void) const |
const cdef_class & | meta_class (void) const |
const cdef_class & | meta_method (void) const |
const cdef_class & | meta_package (void) const |
const cdef_class & | meta_property (void) const |
cdef_manager & | operator= (const cdef_manager &)=delete |
void | register_class (const cdef_class &cls) |
void | register_package (const cdef_package &pkg) |
void | unregister_class (const cdef_class &cls) |
void | unregister_package (const cdef_package &pkg) |
Private Attributes | |
std::map< std::string, cdef_class > | m_all_classes |
std::map< std::string, cdef_package > | m_all_packages |
interpreter & | m_interpreter |
cdef_package | m_meta |
cdef_class | m_meta_class |
cdef_class | m_meta_method |
cdef_class | m_meta_package |
cdef_class | m_meta_property |
Definition at line 42 of file cdef-manager.h.
cdef_manager::cdef_manager | ( | interpreter & | interp | ) |
Definition at line 325 of file cdef-manager.cc.
References class_eq(), class_fevalStatic(), class_fromName(), class_ge(), class_get_inferiorclasses(), class_get_methods(), class_get_properties(), class_get_superclasses(), class_getConstant(), class_gt(), class_le(), class_lt(), class_ne(), cdef_class::get_constructor_function(), interpreter::get_symbol_table(), interpreter::get_type_info(), handle_delete(), symbol_table::install_built_in_function(), cdef_package::install_class(), cdef_class::install_method(), cdef_class::install_property(), m_interpreter, m_meta, m_meta_class, m_meta_method, m_meta_package, m_meta_property, make_attribute(), make_class(), make_fcn_handle(), make_meta_class(), make_method(), make_package(), make_property(), package_fromName(), package_get_classes(), package_get_functions(), package_get_packages(), package_getAllPackages(), property_get_defaultvalue(), octave_base_value::register_type(), and cdef_object::set_class().
|
delete |
|
default |
cdef_class cdef_manager::find_class | ( | const std::string & | name, |
bool | error_if_not_found = true , |
||
bool | load_if_not_found = true |
||
) |
Definition at line 635 of file cdef-manager.cc.
References cdef_class, error(), interpreter::find(), cdef_package::find(), find_package(), cdef_class::is_builtin(), octave_value::is_defined(), lookup_class(), m_all_classes, m_interpreter, and cdef_object::ok().
Referenced by find_method_symbol(), and lookup_class().
octave_value cdef_manager::find_method | ( | const std::string & | class_name, |
const std::string & | name | ||
) | const |
Definition at line 942 of file cdef-manager.cc.
References cdef_class::get_method(), and lookup_class().
Referenced by tree_evaluator::get_user_code().
octave_value cdef_manager::find_method_symbol | ( | const std::string & | method_name, |
const std::string & | class_name | ||
) |
Definition at line 687 of file cdef-manager.cc.
References find_class(), cdef_class::find_method(), octave_value(), and cdef_object::ok().
Referenced by fcn_info::fcn_info_rep::load_class_method().
cdef_package cdef_manager::find_package | ( | const std::string & | name, |
bool | error_if_not_found = true , |
||
bool | load_if_not_found = true |
||
) |
Definition at line 704 of file cdef-manager.cc.
References error(), load_path::find_package(), interpreter::get_load_path(), m_all_packages, m_interpreter, make_package(), and cdef_object::ok().
Referenced by find_class(), find_package_symbol(), lookup_package(), cdef_class::make_meta_class(), make_package(), and package_getAllPackages().
octave_value cdef_manager::find_package_symbol | ( | const std::string & | pack_name | ) |
Definition at line 744 of file cdef-manager.cc.
References find_package(), octave_value(), and cdef_object::ok().
cdef_property cdef_manager::make_attribute | ( | const cdef_class & | cls, |
const std::string & | name | ||
) |
Definition at line 869 of file cdef-manager.cc.
References make_property().
Referenced by cdef_manager().
cdef_class cdef_manager::make_class | ( | const std::string & | name, |
const cdef_class & | super | ||
) |
Definition at line 812 of file cdef-manager.cc.
References make_class().
cdef_class cdef_manager::make_class | ( | const std::string & | name, |
const std::list< cdef_class > & | super_list = std::list<cdef_class> () |
||
) |
Definition at line 755 of file cdef-manager.cc.
References error(), cdef_class::mark_as_handle_class(), meta_class(), cdef_object::put(), register_class(), and cdef_object::set_class().
Referenced by cdef_manager(), cdef_class::cdef_class_rep::construct_object(), make_class(), make_meta_class(), and cdef_class::make_meta_class().
cdef_class cdef_manager::make_meta_class | ( | const std::string & | name, |
const cdef_class & | super | ||
) |
Definition at line 819 of file cdef-manager.cc.
References make_class(), cdef_class::mark_as_meta_class(), and cdef_object::put().
Referenced by cdef_manager().
cdef_method cdef_manager::make_method | ( | const cdef_class & | cls, |
const std::string & | name, | ||
const octave_value & | fcn, | ||
const std::string & | m_access = "public" , |
||
bool | is_static = false |
||
) |
Definition at line 875 of file cdef-manager.cc.
References cdef_class::get_name(), octave_value::is_defined(), is_dummy_method(), make_function_of_class(), cdef_method::mark_as_external(), meta_method(), cdef_object::put(), cdef_object::set_class(), cdef_method::set_function(), and to_ov().
Referenced by cdef_manager(), cdef_class::cdef_class_rep::construct_object(), cdef_class::make_meta_class(), and make_method().
cdef_method cdef_manager::make_method | ( | const cdef_class & | cls, |
const std::string & | name, | ||
octave_builtin::fcn | ff, | ||
const std::string & | m_access = "public" , |
||
bool | is_static = false |
||
) |
Definition at line 904 of file cdef-manager.cc.
References make_method().
cdef_method cdef_manager::make_method | ( | const cdef_class & | cls, |
const std::string & | name, | ||
octave_builtin::meth | mm, | ||
const std::string & | m_access = "public" , |
||
bool | is_static = false |
||
) |
Definition at line 914 of file cdef-manager.cc.
References make_method().
cdef_package cdef_manager::make_package | ( | const std::string & | nm, |
const std::string & | parent = "" |
||
) |
Definition at line 924 of file cdef-manager.cc.
References find_package(), meta_package(), cdef_object::put(), register_package(), cdef_object::set_class(), and to_ov().
Referenced by cdef_manager(), cdef_class::cdef_class_rep::construct_object(), and find_package().
cdef_property cdef_manager::make_property | ( | const cdef_class & | cls, |
const std::string & | name, | ||
const octave_value & | get_method = Matrix () , |
||
const std::string & | get_access = "public" , |
||
const octave_value & | set_method = Matrix () , |
||
const std::string & | set_access = "public" |
||
) |
Definition at line 831 of file cdef-manager.cc.
References cdef_class::get_name(), octave_value::isempty(), make_function_of_class(), meta_property(), cdef_object::put(), cdef_object::set_class(), and to_ov().
Referenced by cdef_manager(), cdef_class::cdef_class_rep::construct_object(), make_attribute(), and cdef_class::make_meta_class().
|
inline |
Definition at line 98 of file cdef-manager.h.
Referenced by cdef_package::cdef_package_rep::meta_release().
|
inline |
Definition at line 93 of file cdef-manager.h.
Referenced by cdef_class::cdef_class_rep::construct_object(), and make_class().
|
inline |
Definition at line 95 of file cdef-manager.h.
Referenced by cdef_class::cdef_class_rep::construct_object(), and make_method().
|
inline |
Definition at line 96 of file cdef-manager.h.
Referenced by cdef_class::cdef_class_rep::construct_object(), and make_package().
|
inline |
Definition at line 94 of file cdef-manager.h.
Referenced by cdef_class::cdef_class_rep::construct_object(), and make_property().
|
delete |
|
inline |
Definition at line 73 of file cdef-manager.h.
References cdef_class::get_name().
Referenced by make_class().
|
inline |
Definition at line 83 of file cdef-manager.h.
References cdef_package::get_name().
Referenced by make_package().
|
inline |
Definition at line 78 of file cdef-manager.h.
References cdef_class::get_name().
Referenced by cdef_class::cdef_class_rep::meta_release().
|
inline |
Definition at line 88 of file cdef-manager.h.
References cdef_package::get_name().
Referenced by cdef_package::cdef_package_rep::meta_release().
|
private |
Definition at line 150 of file cdef-manager.h.
Referenced by find_class().
|
private |
Definition at line 153 of file cdef-manager.h.
Referenced by find_package().
|
private |
Definition at line 147 of file cdef-manager.h.
Referenced by cdef_manager(), find_class(), and find_package().
|
private |
Definition at line 160 of file cdef-manager.h.
Referenced by cdef_manager().
|
private |
Definition at line 155 of file cdef-manager.h.
Referenced by cdef_manager().
|
private |
Definition at line 157 of file cdef-manager.h.
Referenced by cdef_manager().
|
private |
Definition at line 158 of file cdef-manager.h.
Referenced by cdef_manager().
|
private |
Definition at line 156 of file cdef-manager.h.
Referenced by cdef_manager().