summaryrefslogtreecommitdiff
path: root/xpp/utils/zconf/Zaptel/Chans.pm
diff options
context:
space:
mode:
Diffstat (limited to 'xpp/utils/zconf/Zaptel/Chans.pm')
-rw-r--r--xpp/utils/zconf/Zaptel/Chans.pm40
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