[Bio] / FigKernelPackages / FIGAttributes.pm Repository:
ViewVC logotype

View of /FigKernelPackages/FIGAttributes.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (download) (as text) (annotate)
Wed Mar 4 21:28:17 2009 UTC (10 years, 8 months ago) by overbeek
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, myrast_rel40, mgrast_dev_05262011, mgrast_dev_04082011, rast_rel_2010_0928, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, rast_rel_2011_0119, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, mgrast_dev_04012011, rast_rel_2009_07_09, rast_rel_2010_0827, myrast_33, rast_rel_2011_0928, mgrast_dev_04052011, mgrast_dev_02222011, rast_rel_2009_03_26, mgrast_dev_10262011, HEAD
Changes since 1.3: +1 -1 lines
get rid of something

#
# Copyright (c) 2003-2006 University of Chicago and Fellowship
# for Interpretations of Genomes. All Rights Reserved.
#
# This file is part of the SEED Toolkit.
# 
# The SEED Toolkit is free software. You can redistribute
# it and/or modify it under the terms of the SEED Toolkit
# Public License. 
#
# You should have received a copy of the SEED Toolkit Public License
# along with this program; if not write to the University of Chicago
# at info@ci.uchicago.edu or the Fellowship for Interpretation of
# Genomes at veronika@thefig.info or download a copy from
# http://www.theseed.org/LICENSE.TXT.
#


package FIGAttributes;

#require v5.6.0;

use Exporter;
use base 'Exporter';
@EXPORT = qw(%_FunctionAttributes);

use strict;

no warnings 'redefine';


#
# We use the methods below to process the subroutine attributes.
#
# See
#	http://www.perldoc.com/perl5.8.4/pod/perlsub.html
#	http://www.perldoc.com/perl5.8.4/lib/attributes.html
#	http://www.perldoc.com/perl5.8.4/lib/Attribute/Handlers.html
#
# for details.
#
# We take action on the following attributes:
#
#   Remote  Allow remote access to this function.
#   Scalar  Function returns a scalar.
#   List    Function returns a list.
#	method	This function is actually a method, and expects $self as the first arg.
#
# If an attribute is set for a function in some package, we
# will update a table %Package::_FunctionAttributes which is
# keyed on the (string) for the coderef, and which has value
# of a list of attribute values.
#

sub MODIFY_CODE_ATTRIBUTES
{
    my($pkg, $sub, @attrs) = @_;

    for my $attr (@attrs)
    {
	set_code_attribute($pkg, $sub, $attr);
    }
    return ();
}

sub set_code_attribute
{
    my($package, $coderef, $attr, $data) = @_;

#    print "Set code attr for $package $coderef $attr d=$data\n";
    my $str = "package $package;\n";
    $str .= <<'EOE';
$_FunctionAttributes{$coderef}->{$attr} = $data;
#print "in set_code_attribute: \n", Dumper(\%_FunctionAttributes);
EOE
    eval $str;
    if ($@ ne "")
    {
	warn "EVAL failed: $@\n";
    }
}

1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3