diff options
Diffstat (limited to 'xpp/utils/zconf/Zaptel/Chans.pm')
-rw-r--r-- | xpp/utils/zconf/Zaptel/Chans.pm | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/xpp/utils/zconf/Zaptel/Chans.pm b/xpp/utils/zconf/Zaptel/Chans.pm index f105a8c..236d6af 100644 --- a/xpp/utils/zconf/Zaptel/Chans.pm +++ b/xpp/utils/zconf/Zaptel/Chans.pm @@ -8,34 +8,30 @@ package Zaptel::Chans; # $Id$ # use strict; - -# Accessors (miniperl does not have Class:Accessor) -our $AUTOLOAD; -sub AUTOLOAD { - my $self = shift; - my $name = uc($AUTOLOAD); - $name =~ s/.*://; # strip fully-qualified portion - if (@_) { - return $self->{$name} = shift; - } else { - return $self->{$name}; - } -} +use XppUtils; sub new($$$$$$) { my $pack = shift or die "Wasn't called as a class method\n"; my $span = shift or die "Missing a span parameter\n"; - my $num = shift or die "Missing a channel number parameter\n"; - my $fqn = shift or die "Missing a channel fqn parameter\n"; - my $signalling = shift || ''; - my $info = shift || ''; + my $line = shift or die "Missing an input line\n"; + my ($num, $fqn, $rest) = split(/\s+/, $line, 3); + $num or die "Missing a channel number parameter\n"; + $fqn or die "Missing a channel fqn parameter\n"; + my $signalling = ''; + if(defined $rest && ($rest =~ s/(\w+)//)) { + $signalling = $1; + } + my $info = ''; + if(defined $rest && ($rest =~ s/(.*)//)) { + $info = $1; + } my $self = {}; bless $self, $pack; - $self->span($span); - $self->num($num); - $self->fqn($fqn); - $self->signalling($signalling); - $self->info($info); + $self->{SPAN} = $span; + $self->{NUM} = $num; + $self->{FQN} = $fqn; + $self->{SIGNALLING} = $signalling; + $self->{INFO} = $info; my $type; if($fqn =~ m|\bXPP_(\w+)/.*$|) { $type = $1; # One of our AB |