Started the new routing stuff which will run in parallel for a while.
[spider.git] / perl / Route / Node.pm
1 #
2 # Node routing routines
3 #
4 # Copyright (c) 2001 Dirk Koopman G1TLH
5 #
6 # $Id$
7
8
9 package Route::Node;
10
11 use DXDebug;
12 use Route;
13
14 use strict;
15
16 use vars qw(%list %valid @ISA $me);
17 @ISA = qw(Route);
18
19 %valid = (
20                   dxchancall => '0,DXChannel Calls,parray',
21                   parent => '0,Parent Calls,parray',
22                   version => '0,Version',
23 );
24
25 %list = ();
26
27 sub init
28 {
29         $me = Route::Node->new(@_);
30 }
31
32 sub new
33 {
34         my $pkg = shift;
35         my $call = uc shift;
36         confess "already have $call in $pkg" if $list{$call};
37         
38         my $self = $pkg->SUPER::new($call);
39         $self->{dxchancall} = [ ];
40         $self->{parent} = [ ];
41         $self->{version} = shift;
42         
43         $list{$call} = $self;
44         
45         return $self;
46 }
47
48 sub get
49 {
50         my $call = shift;
51         $call = shift if ref $call;
52         return $list{uc $call};
53 }
54
55 sub adddxchan
56 {
57         my $self = shift;
58     $self->_addlist('dxchancall', @_);
59 }
60
61 sub deldxchan
62 {
63         my $self = shift;
64     $self->_dellist('dxchancall', @_);
65 }
66
67 sub addparent
68 {
69         my $self = shift;
70     $self->_addlist('parent', @_);
71 }
72
73 sub delparent
74 {
75         my $self = shift;
76     $self->_dellist('parent', @_);
77 }
78
79 1;
80