Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Wikipedia/CatGraph.pm view on Meta::CPAN
{
my $self=shift;
my $errcode=shift;
my $errmsg=shift;
if (!defined($errcode))
{
confess("set_err_state() called with an undefined argument.");
}
if (exists($ErrMsgs{$errcode}))
{
if ($errcode==$ERR_OK)
{
$self->{errstr}="";
}
else
{
$self->{errstr}.=" " . $ErrMsgs{$errcode};
if (defined($errmsg))
{
$self->{errstr}.=" " . $errmsg;
}
}
}
else
{
confess("Internal error: set_err_state() called with an " .
"unrecognized argument ($errcode).")
}
}
sub clearerr
{
my $self=shift;
$self->{errstr}="";
}
sub errmsg
{
my $self=shift;
return $self->{errstr};
}
#############################################################################
#
# Public methods
#
##############################################################################
sub new
{
my $proto=shift;
my $class=ref($proto)||$proto;
my $parent=ref($proto)&&$proto;
my $self={};
bless($self,$class);
$self->_init(@_);
$self->_set_err_state($ERR_OK);
return $self;
}
sub _init
{
my $self=shift;
$self->{root}=$DEF_ROOT;
$self->{method}=$DEF_METHOD;
if (defined(@_))
{
my %args=@_;
@$self{ keys %args }=values(%args);
}
}
sub dump_graph
{
my $self=shift;
my $f=shift;
eval
{
store($self->{G},$f);
};
if ($@)
{
$self->_set_err_state($ERR_DUMP,"file: $f");
return 0;
}
return 1;
}
sub load_graph
{
my $self=shift;
my $f=shift;
eval
{
$self->{G}=retrieve($f);
};
if ($@)
{
$self->_set_err_state($ERR_LOAD,"file: $f");
return 0;
}
if (!defined($self->{G}))
{
$self->_set_err_state($ERR_LOAD_UNDEF,"file: $f");
return 0;
}
( run in 2.549 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )