view .hgsub @ 15986:14aa0b5a980c classdef

Abstract the meta-protocol layer to use it for other meta objects. * libinterp/octave-value/ov-classdef.h (class cdef_meta_object_rep, class cdef_meta_object): New classes. (cdef_object_rep::is_class, cdef_object_rep::is_method, cdef_object_rep::is_property, cdef_object_rep::is_package): Moved to cdef_meta_object_rep. (cdef_object::is_class, cdef_object::is_method, cdef_object::is_property, cdef_object::is_package): Moved to cdef_meta_object. (cdef_object_rep::is_handle_object, cdef_object_rep::is_value_object, cdef_object_rep::is_meta_object): New virtual methods. (cdef_object::is_handle_object, cdef_object::is_value_object, cdef_object::is_meta_object): New methods. (handle_cdef_object::is_handle_object): New method. (value_cdef_object::is_value_object): Likewise. (class cdef_class, class cdef_property, class_cdef_method, class cdef_package): Inherit from cdef_meta_object. (class cdef_class::cdef_class_rep, class cdef_property::cdef_property_rep, class cdef_method::cdef_method_rep, class cdef_package::cdef_package_rep): Inherit from cdef_meta_object_rep. (cdef_class::cdef_class_rep::meta_subsref): Renamed from subsref_meta. (cdef_class::cdef_class_rep::meta_release, cdef_class::cdef_class_rep::meta_is_postfix_index_handled): New method, moved from octave_classdef_proxy. (cdef_class::operator=(const cdef_object&)): Remove method. (cdef_class::subsref_meta): Remove method, replaced by cdef_meta_object::meta_subsref. (cdef_method::cdef_method(const cdef_method&)): Fix signature of copy constructor, was using "const cdef_property&". (cdef_package::cdef_package(const cdef_package&)): Add copy constructor. * libinterp/octave-value/ov-classdef.cc (class octave_classdef_meta): Renamed from octave_classdef_proxy. (octave_classdef_meta::meta_subsref): Method renamed from subsref_meta. (octave_classdef_meta::meta_subsref, octave_classdef_meta::octave_classdef_meta, octave_classdef_meta::is_postfix_index_handled): Forward calls to cdef_meta_object. (cdef_class::cdef_class_rep::meta_subsref): Renamed from subsref_meta. (cdef_class::cdef_class_rep::meta_release): New method. (cdef_class::get_method_function): Use renamed class octave_classdef_meta. (cdef_class::cdef_class_rep::cdef_class_rep): Inherit from cdef_meta_object_rep.
author Michael Goffioul <michael.goffioul@gmail.com>
date Mon, 28 Jan 2013 21:56:01 -0500
parents 44f30dcd87e0
children
line wrap: on
line source

gnulib-hg = gnulib-hg