sub new
{
- my ($pkg, $call) = @_;
+ my $pkg = shift;
+ my $call = shift;
+
$pkg = ref $pkg if ref $pkg;
my $self = bless {call => $call}, $pkg;
($self->{dxcc}, $self->{itu}, $self->{cq}, $self->{state}, $self->{city}) =
Prefix::cty_data($call);
- $self->{flags} = here(1);
+ $self->{flags} = 1;
return $self;
}
return @out;
}
-sub is_empty
+sub _haslist
{
my $self = shift;
- return @{$self->{$_[0]}} == 0;
+ my $field = shift;
+ my @out;
+ my $call = shift;
+ my $r = grep $_->{call} eq $call, @{$self->{$field}};
+ dbg(ref($self) . " $call is " . $r?'in':'NOT in' . " $self->{call}\->\{$field\}") if isdbg('routelow');
}
-sub is_aranea
+sub is_empty
{
my $self = shift;
- $self->{aranea} = shift if @_;
- return $self->{aranea};
+ return @{$self->{$_[0]}} == 0;
}
#
sub here
{
my $self = shift;
- my $r = shift;
- return $self ? 1 : 0 unless ref $self;
- return ($self->{flags} & 1) ? 1 : 0 unless defined $r;
- $self->{flags} = (($self->{flags} & ~1) | ($r ? 1 : 0));
- return $r ? 1 : 0;
+ $self->{flags} = shift if @_;
+ return $self->{flags};
}
+# conferencing in the ak1a sense is not supported
sub conf
{
my $self = shift;
- my $r = shift;
- return $self ? 2 : 0 unless ref $self;
- return ($self->{flags} & 2) ? 2 : 0 unless defined $r;
- $self->{flags} = (($self->{flags} & ~2) | ($r ? 2 : 0));
- return $r ? 2 : 0;
+ return 0;
}
sub parents
# recursion detector
if ((DXChannel::get($self->{call}) && $level > 1) || grep $self->{call} eq $_, @$seen) {
$line .= ' ...';
- push @out, $line;
+# push @out, $line;
return @out;
}
push @$seen, $self->{call};