X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXChannel.pm;h=6ca2fc2c540a82a0ee31a6faa5ed6309f9cc198c;hb=57b5e464bc44ae8eee23ab94c1f499f527595dc9;hp=d21497bdc4222b870945eff5a6d5d97560321098;hpb=23d995215379c4786c2cb1d930a09c734c2472aa;p=spider.git diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index d21497bd..6ca2fc2c 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -26,8 +26,8 @@ package DXChannel; use Msg; -use DXUtil; use DXM; +use DXUtil; use DXDebug; use Carp; @@ -59,6 +59,7 @@ use vars qw(%channels %valid); redirect => '0,Redirect messages to', lang => '0,Language', func => '9,Function', + loc => '9,Local Vars', # used by func to store local variables in ); # create a new channel object [$obj = DXChannel->new($call, $msg_conn_obj, $user_obj)] @@ -182,20 +183,23 @@ sub send_file $self->send(@buf); } -# just a shortcut for $dxchan->send(msg(...)); +# this will implement language independence (in time) sub msg { my $self = shift; - $self->send(DXM::msg(@_)); + return DXM::msg(@_); } # change the state of the channel - lots of scope for debugging here :-) sub state { my $self = shift; - $self->{oldstate} = $self->{state}; - $self->{state} = shift; - dbg('state', "$self->{call} channel func $self->{func} state $self->{oldstate} -> $self->{state}\n"); + if (@_) { + $self->{oldstate} = $self->{state}; + $self->{state} = shift; + dbg('state', "$self->{call} channel func $self->{func} state $self->{oldstate} -> $self->{state}\n"); + } + return $self->{state}; } # disconnect this channel