GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CLASS::METHODMAPPER (3)

.ds Aq ’

NAME

Class::MethodMapper - Abstract Class wrapper for AutoLoader

CONTENTS

SYNOPSIS



  BEGIN {
    @MMDerived::ISA = qw(Class::MethodMapper
                                  Exporter AutoLoader);
  }

  sub new {
    my $class = shift;
    my @args = @_;

    my $self = Class::MethodMapper->new();
    bless $self, $class;

    my %map = (
      time_style => {
        type  => parameter,
        doc   => How recording duration is decided,
        domain => enum,
        options => [qw(track prompt fixed click_stop deadman)],
        value => prompt,
      },

      iter_plan => {
        type  => volatile,
        doc   => Currently active plan for iteration: perl code.,
        value => play; color("yellow"); hold(0.75); color("red"); 
                     . record; color; ,  # see FestVox::ScriptLang

      },
    );

    $self->set_map(%map); 
    $self->set(@args) if @args;
    $self;
  }



DESCRIPTION

Class::MethodMapper takes a hash of hashes and creates get() and set() methods, with (some) validation, for the maps listed. Generally, a parameter is something that can be saved and restored, whereas a volatile is not serialized at save-time.

CONSTRUCTORS

new(@args) Creates and initializes an empty Class::MethodMapper. Calls set() with its arguments.

BUILT-IN METHODS

set_map(%map) Sets the complete map for this object. See FestVox::InitMap for a good example of a method map; it is the big one that FestVox::PointyClicky itself uses. This should be generalized to let you set <B>whichB> map, as get_map() below.
get_map($type) Get the map of a particular type, e.g. parameter. Note that the object itself is the top-level (complete) map, since Class::MethodMapper writes into variables in the object of the same name; the ’map’ itself is just the variables of that type.
delete_map(@mapnames) Delete the mapping for each variable in @mapnames.
get_meta(’type’, ’var’) Get the meta data of a given type for a named variable in th method map.



  type     e.g. volatile, parameter
  doc      some human-readable string do describe this
  value    current value; useful for initialization
  domain   e.g. enum or ref
  options  if domain is enum, an array reference of allowed values
           if domain is ref, ARRAY, HASH or the name of a class.



set_meta(’type’, ’var’, value) Just what you would think. Sets the meta variable type of var to value.
set(’var’ => ’value’) Set the variable var to the value value. Checks if var is in the method map, and complains if it is not. Does basic type checking if the meta variable domain is defined.

This means it checks if the value is an element in the array reference in options if domain is ’enum’ and checks if the value is indeed a reference of the specified type if domain is ’ref’

get(’var’) Return the value of ’var’ if it is defined and in the method map.
save(’type’, \&callback, @args) loops over all the keys that have type ’type’ and calls



    &$callback ($self, $key, $value, @args);



for each of them, where $key is the value of each key and $value is the hashref for its value.

save_config (’filename’) saves all ’parameter’ type key/value pairs to ’filename’
(\&callback, @args) loads earlier saved values of the object keys back by calling



    &$callback ($self, @args);



it expects the callback to return a ($key, $value) list. keeps looping till the callback function returns an undefined key.

restore_config (’filename’) loads values from the file ’filename’, which is in the format that save_config writes out.
var() var itself is promoted to method status; if given no argument, it is considered a get(), and if given argument(s), it is considered a set(). Thus, if you had a parameter called active in the method map, Class::MethodMapper would use AutoLoader to create a active() method (if ever called), so that $self-active> would return the current value, and $self-active(1)> would set it to 1.

BUGS

Terribly underdocumented.

AUTHOR

Copyright (c) 2000 Kevin A. Lenzo and Alan W Black, Carnegie Mellon Unversity.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CLASS::METHODMAPPER (3) 2001-03-19

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.