2 # module to manage channel lists & data
4 # Copyright (c) 1998 - Dirk Koopman G1TLH
17 # create a new connection object [$obj = Connect->new($call, $msg_conn_obj, $user_obj)]
20 my ($pkg, $call, $conn, $user) = @_;
23 die "trying to create a duplicate Connect for call $call\n" if $connects{$call};
24 $self->{call} = $call;
25 $self->{conn} = $conn;
26 $self->{user} = $user;
30 return $connects{$call} = $self;
33 # obtain a connection object by callsign [$obj = Connect->get($call)]
36 my ($pkg, $call) = @_;
37 return $connect{$call};
40 # obtain all the connection objects
44 return values(%connects);
47 # obtain a connection object by searching for its connection reference
50 my ($pkg, $conn) = @_;
53 foreach $self (values(%connects)) {
54 return $self if ($self->{conn} == $conn);
59 # get rid of a connection object [$obj->del()]
63 delete $connects{$self->{call}};
67 # handle out going messages
72 my $call = $self->{call};
73 my $conn = $self->{conn};
77 print DEBUG "$t > $sort $call $line\n" if defined DEBUG;
78 print "> $sort $call $line\n";
79 $conn->send_now("$sort$call|$line");
87 my $call = $self->{call};
88 my $conn = $self->{conn};
92 print DEBUG "$t > $sort $call $line\n" if defined DEBUG;
93 print "> $sort $call $line\n";
94 $conn->send_later("$sort$call|$line");
98 # send a file (always later)
101 my ($self, $fn) = @_;
102 my $call = $self->{call};
103 my $conn = $self->{conn};
106 open(F, $fn) or die "can't open $fn for sending file ($!)";
109 $self->send_later('D', @buf);