X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FProt.pm;h=27416735580647632a56daaed1f24072eff2be09;hb=3292b0f8ef9af57608f5e2032bf3c0fca838eb7a;hp=4576196a28533f81a44897c55f2a207bbd0ee6f1;hpb=1910df7183401a62084e85c3ace179df492a6fbe;p=spider.git diff --git a/perl/Prot.pm b/perl/Prot.pm index 4576196a..27416735 100644 --- a/perl/Prot.pm +++ b/perl/Prot.pm @@ -6,13 +6,56 @@ package Prot; use strict; + +use DXUtil; +use DXDebug; +use vars qw(%valid); + +%valid = ( + fromnode => '0,From Node', + tonode => '0,To Node', + vianode => '0,Via Node', + origin => '0,Original Node', + tocall => '0,To Callsign', + fromcall => '0,From Callsign', + hops => '0,No. of hops', + text => '0,Text', + datetime => '0,Date/Time,atime', + freq => '0,Frequency', + dxcall => '0,DX Callsign', + sort => '0,Sort', + hereflag => '0,Here?,yesno', + talkflag => '0,Talk mode', + bellflag => '0,Bell?', + privflag => '0,Private?,yesno', + rrflag => '0,RR Req.?,yesno', + sysopflag => '0,Sysop flag', + dxcount => '0,DX Count', + wwvcount => '0,WWV Count', + version => '0,Node Version', + nodelist => '0,Node List,parray', + ); + + sub new { my $pkg = shift; - my $self = bless {}, $pkg; + my $sort = shift; + my $self = bless { sort => $sort }, $pkg; return $self; } +sub AUTOLOAD +{ + no strict; + my $name = $AUTOLOAD; + return if $name =~ /::DESTROY$/; + $name =~ s/^.*:://o; + + confess "Non-existant field '$AUTOLOAD'" if !$valid{$name}; + *$AUTOLOAD = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}}; + goto &$AUTOLOAD; +} 1; __END__