spider/perl/PC.pm

49 lines
1.1 KiB
Perl
Raw Permalink Normal View History

2000-08-18 18:53:41 +00:00
#
# OO version of all the PC protocol stuff
#
# Here is done all reception, validation and generation of PC
# protocol frames
#
# This uses the Prot class as a basis for all
# protocol entities
#
2000-08-18 18:53:41 +00:00
package PC10;
@ISA = qw(Prot);
use DXUtil;
use strict;
sub new
{
my $pkg = shift;
my $self = SUPER->new($pkg);
$self->{from} = shift;
$self->{to} = shift; # is TO if {to} is blank
$self->{text} = shift;
$self->{flag} = shift;
my $auxto = shift;
$self->{origin} = shift;
# sort out the to/via dillema and do some validation
if (is_callsign($auxto)) {
$self->{via} = $self->{to};
$self->{to} = $auxto;
return undef unless is_callsign($self->{via});
}
return undef unless is_callsign($self->{from}) && is_callsign($self->{to}) && is_callsign($self->{origin}) && is_pctext($self->{text}) && is_pcflag($self->{flag});
return $self;
}
sub out {
my $self = shift;
my $addra = $self->{via} || $self->{to};
my $addrb = exists $self->{via} ? $self->{to} : ' ';
return "PC10^$self->{from}^$addra^$self->{text}^$self->{flag}^$addrb^$self->{origin}^~";
}
1;
__END__