X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FProt.pm;h=7435ae963e7c95566057c745c5f862288a0d3b73;hb=ff8c77ef8bad7d4ff4433ca233a1dc8f0203983d;hp=4576196a28533f81a44897c55f2a207bbd0ee6f1;hpb=1910df7183401a62084e85c3ace179df492a6fbe;p=spider.git diff --git a/perl/Prot.pm b/perl/Prot.pm index 4576196a..7435ae96 100644 --- a/perl/Prot.pm +++ b/perl/Prot.pm @@ -6,13 +6,63 @@ package Prot; use strict; + +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0; +$main::build += $VERSION; +$main::branch += $BRANCH; + +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 "refs"; + my $self = shift; + 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}} ; + @_ ? $self->{$name} = shift : $self->{$name} ; +} 1; __END__