26#if ! defined (octave_cdef_package_h)
27#define octave_cdef_package_h 1
29#include "octave-config.h"
68 std::string
get_name (
void)
const {
return get(
"Name").string_value (); }
70 void set_name (
const std::string& nm) { put (
"Name", nm); }
73 install_class (
const cdef_class& cls,
const std::string& nm);
76 install_function (
const octave_value& fcn,
const std::string& nm);
79 install_package (
const cdef_package& pack,
const std::string& nm);
81 OCTINTERP_API
Cell get_classes (
void)
const;
83 OCTINTERP_API
Cell get_functions (
void)
const;
85 OCTINTERP_API
Cell get_packages (
void)
const;
98 m_package_map.clear ();
105 meta_subsref (
const std::string& type,
106 const std::list<octave_value_list>& idx,
int nargout);
108 OCTINTERP_API
void meta_release (
void);
112 return (type ==
'.');
131 typedef std::map<std::string, octave_value>::const_iterator
134 typedef std::map<std::string, cdef_package>::const_iterator
139 m_class_map (p.m_class_map), m_function_map (p.m_function_map),
140 m_package_map (p.m_package_map), m_member_count (p.m_member_count)
157 get_rep ()->set_name (nm);
167 error (
"internal error: invalid assignment from %s to meta.package object",
168 class_name ().c_str ());
182 get_rep ()->install_class (cls, nm);
187 get_rep ()->install_function (fcn, nm);
192 get_rep ()->install_package (pack, nm);
197 return get_rep ()->get_classes ();
202 return get_rep ()->get_functions ();
207 return get_rep ()->get_packages ();
210 std::string
get_name (
void)
const {
return get_rep ()->get_name (); }
214 return get_rep ()->find (nm);
cdef_object & operator=(const cdef_object &obj)
const cdef_object_rep * get_rep(void) const
std::map< std::string, octave_value >::const_iterator function_const_iterator
std::map< std::string, cdef_package >::iterator package_iterator
std::map< std::string, cdef_class >::const_iterator class_const_iterator
cdef_object_rep * copy(void) const
std::map< std::string, cdef_class >::iterator class_iterator
bool is_package(void) const
void set_name(const std::string &nm)
octave_idx_type static_count(void) const
octave_idx_type m_member_count
std::string get_name(void) const
bool meta_accepts_postfix_index(char type) const
cdef_package_rep(const cdef_package_rep &p)
std::map< std::string, cdef_class > m_class_map
std::map< std::string, octave_value >::iterator function_iterator
std::map< std::string, cdef_package >::const_iterator package_const_iterator
std::map< std::string, octave_value > m_function_map
~cdef_package_rep(void)=default
std::map< std::string, cdef_package > m_package_map
void install_package(const cdef_package &pack, const std::string &nm)
octave_value find(const std::string &nm)
Cell get_functions(void) const
cdef_package(const std::string &nm)
cdef_package(const cdef_object &obj)
Cell get_classes(void) const
const cdef_package_rep * get_rep(void) const
friend OCTINTERP_API void install_classdef(interpreter &interp)
std::string get_name(void) const
Cell get_packages(void) const
cdef_package_rep * get_rep(void)
~cdef_package(void)=default
void install_function(const octave_value &fcn, const std::string &nm)
void install_class(const cdef_class &cls, const std::string &nm)
cdef_package(const cdef_package &pack)
static octave_idx_type find(octave_idx_type i, octave_idx_type *pp)
void error(const char *fmt,...)
class OCTINTERP_API cdef_package