Author: bdonlan
Date: 2004-07-04 18:53:47 -0400 (Sun, 04 Jul 2004)
New Revision: 293

Removed:
   trunk/main/client/lib/POE/
Modified:
   trunk/clients/haver-gtk/bin/haver-gtk.pl
   trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Channel.pm
   trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Chat.pm
   trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Query.pm
   trunk/main/client/lib/Haver/Client/POE.pm
Log:
* main/client/lib/Haver/Client/POE.pm - Updated for new S: OF syntax. This
  breaks backwards compatibility.

* main/client/lib/POE - Removed wrapper for old clients, as API has changed.

* clients/haver-gtk/bin/haver-gtk.pl,
  clients/haver-gtk/lib/Haver/UI/Gtk/Page/Query.pm,
  clients/haver-gtk/lib/Haver/UI/Gtk/Page/Chat.pm,
  clients/haver-gtk/lib/Haver/UI/Gtk/Page/Channel.pm - Updated to new
  Haver::Client::POE API.


Modified: trunk/clients/haver-gtk/bin/haver-gtk.pl
===================================================================
--- trunk/clients/haver-gtk/bin/haver-gtk.pl    2004-07-04 22:05:32 UTC (rev 
292)
+++ trunk/clients/haver-gtk/bin/haver-gtk.pl    2004-07-04 22:53:47 UTC (rev 
293)
@@ -182,7 +182,7 @@
 
 sub _start {
        my ( $kernel, $session, $heap ) = @_[ KERNEL, SESSION, HEAP ];
-       Haver::Client::POE->new("haver", version => "haver-gtk/$VERSION");
+       Haver::Client::POE->new("haver", version => "haver-gtk/$VERSION", debug 
=> 99);
        $kernel->post("haver", "register", "all");
        
        # Create the main window
@@ -393,11 +393,10 @@
 }      
 
 sub haver_pmsg {
-       my ($kernel, $args) = @_[KERNEL,ARG0];
-       my $who = $args->[1];
+       my ($kernel, $args, $who) = @_[KERNEL,ARG0,ARG2];
        if (!$queries{$who}) {
                my $page = get_query_page("$who");
-               $page->process_pmsg($args);
+               $page->process_pmsg($args, $who);
        }
 }
 

Modified: trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Channel.pm
===================================================================
--- trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Channel.pm    2004-07-04 
22:05:32 UTC (rev 292)
+++ trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Channel.pm    2004-07-04 
22:53:47 UTC (rev 293)
@@ -120,7 +120,7 @@
                $self->print_page("You're not on this channel.");
                return;
        }
-       $poe_kernel->post('haver', 'msg', $type, $self->{channel}, $text);
+       $poe_kernel->post('haver', 'msg', $self->{channel}, $type, $text);
 }
 
 sub add_ulist ($@) {
@@ -213,35 +213,33 @@
 }
 
 sub _join {
-       my ($self, $kernel, $args, $chan) = @_[OBJECT,KERNEL,ARG0,ARG1];
+       my ($self, $kernel, $chan, $who) = @_[OBJECT,KERNEL,ARG1,ARG2];
        if ($chan eq $self->{channel}) {
-               my $who = $args->[0];
                $self->add_ulist($who);
                $self->print_page("$who has joined $chan.");
        }
 }
 
 sub _part {
-       my ($self, $kernel, $args, $chan) = @_[OBJECT,KERNEL,ARG0,ARG1];
+       my ($self, $kernel, $chan, $who) = @_[OBJECT,KERNEL,ARG1,ARG2];
        if ($chan eq $self->{channel}) {
-               my $who = $args->[0];
                $self->del_ulist($who);
                $self->print_page("$who has left $chan.");
        }
 }
 
 sub _quit {
-       my ($self, $kernel, $args) = @_[OBJECT,KERNEL,ARG0];
-       my ($who, $why) = @$args;
+       my ($self, $kernel, $args, $who) = @_[OBJECT,KERNEL,ARG1];
+       my $why = $args->[0];
        if ($self->del_ulist($who)) {
                $self->print_page("$who has quit: $why.");
        }
 }
        
 sub _msg {
-       my ($self, $kernel, $args, $chan) = @_[OBJECT,KERNEL,ARG0,ARG1];
+       my ($self, $kernel, $args, $chan, $uid) = @_[OBJECT,KERNEL,ARG0..ARG2];
        if ($chan eq $self->{channel}) {
-               $self->_display_msg($args);
+               $self->_display_msg($uid, $args);
        }
 }
 

Modified: trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Chat.pm
===================================================================
--- trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Chat.pm       2004-07-04 
22:05:32 UTC (rev 292)
+++ trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Chat.pm       2004-07-04 
22:53:47 UTC (rev 293)
@@ -27,9 +27,9 @@
 use base 'Haver::UI::Gtk::Page::Text';
 
 sub _display_msg {
-       my ($self, $args) = @_;
+       my ($self, $who, $args) = @_;
        # This assumes the parent has already checked that we should display it
-       my ($type, $who, $text) = @$args;
+       my ($type, $text) = @$args;
        my $prefix;
        my @lines = split "\n", $text;
        if ($type eq q{"}) {

Modified: trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Query.pm
===================================================================
--- trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Query.pm      2004-07-04 
22:05:32 UTC (rev 292)
+++ trunk/clients/haver-gtk/lib/Haver/UI/Gtk/Page/Query.pm      2004-07-04 
22:53:47 UTC (rev 293)
@@ -77,8 +77,8 @@
 
 sub send_msg ($$$) {
        my ($self, $type, $text) = @_;
-       $poe_kernel->post('haver', 'pmsg', $type, $self->{UID}, $text);
-       $self->_display_msg([$type, $main::globals{UID}, $text]);
+       $poe_kernel->post('haver', 'pmsg', $self->{UID}, $type, $text);
+       $self->_display_msg($main::globals{UID}, [$type, $text]);
 }
 
 sub close {
@@ -86,10 +86,9 @@
 }
 
 sub process_pmsg {
-       my ($self, $args) = @_;
-       my ($type, $who, $text) = @$args;
+       my ($self, $args, $who) = @_;
        return unless $who eq $self->{UID};
-       $self->_display_msg($args);
+       $self->_display_msg($who, $args);
 }
 
 sub get_uid {
@@ -99,13 +98,13 @@
 ### EVENTS
 
 sub _pmsg {
-       my ($self, $kernel, $args) = @_[OBJECT,KERNEL,ARG0];
-       $self->process_pmsg($args);
+       my ($self, $kernel, $args, $who) = @_[OBJECT,KERNEL,ARG0,ARG2];
+       $self->process_pmsg($args, $who);
 }
 
 sub _quit {
-       my ($self, $kernel, $args) = @_[OBJECT,KERNEL,ARG0];
-       my ($who, $why) = @$args;
+       my ($self, $kernel, $args, $who) = @_[OBJECT,KERNEL,ARG0,ARG1];
+       my $why = $args->[0];
        return unless $who eq $self->{UID};
        $self->print_page("$who has quit: $why");
 }

Modified: trunk/main/client/lib/Haver/Client/POE.pm
===================================================================
--- trunk/main/client/lib/Haver/Client/POE.pm   2004-07-04 22:05:32 UTC (rev 
292)
+++ trunk/main/client/lib/Haver/Client/POE.pm   2004-07-04 22:53:47 UTC (rev 
293)
@@ -87,6 +87,7 @@
                connected
                connectfail
 
+               net_in
                input
                send_raw
                send
@@ -114,6 +115,7 @@
                event_PING
                event_CLOSE
                event_IN
+               event_OF
                
                event_JOIN
                event_PART
@@ -207,7 +209,7 @@
 
 sub dispatch_ref {
        my ($kernel, $self, $event, $args) = @_[KERNEL,OBJECT,ARG0,ARG1];
-       $kernel->yield('_dispatch', $event, $args, $self->{scope});
+       $kernel->yield('_dispatch', $event, $args, $self->{IN}, $self->{OF});
 }
 
 sub dispatch {
@@ -288,7 +290,7 @@
                                   Handle => $handle,
                                   Driver => POE::Driver::SysRW->new(),
                                   Filter => POE::Filter::Haver->new(),
-                                  InputEvent => 'input',
+                                  InputEvent => 'net_in',
                                   FlushedEvent => 'flushed',
                                   ErrorEvent => 'net_error'
                                   );
@@ -311,11 +313,16 @@
 
 ### IO
 
+sub net_in {
+       my ($kernel, $self, $event) = @_[KERNEL,OBJECT,ARG0];
+       _dprint 1, "S: ", join("\t", @$event), "\n";
+       _call('dispatch', 'raw_in', @$event);
+       goto &input;
+}
+
 sub input {
        my ($kernel, $self, $event) = @_[KERNEL,OBJECT,ARG0];
-       _dprint 1, "S: ", join("\t", @$event), "\n" unless defined 
$self->{scope};
        my $ename = shift @$event;
-       _call('dispatch', 'raw_in', $ename, @$event) unless defined 
$self->{scope};
        _call("event_$ename", @$event);
 }
 
@@ -453,17 +460,25 @@
 }
 
 sub event_JOIN {
-       my ($kernel, $self, $uid) = @_[KERNEL,OBJECT,ARG0,ARG1];
-       _call('dispatch', ($uid eq '.' ||
-                               $uid eq $self->{UID}) ? 'joined' : 'join',
-                  $uid);
+       my ($kernel, $self) = @_[KERNEL,OBJECT,ARG0,ARG1];
+       my $event = 'join';
+       if (!defined($self->{OF})               ||
+               $self->{OF} eq '.'                      ||
+               $self->{OF} eq $self->{UID}) {
+               $event = 'joined';
+       }
+       _call('dispatch', $event);
 }
 
 sub event_PART {
-       my ($kernel, $self, $uid) = @_[KERNEL,OBJECT,ARG0,ARG1];
-       _call('dispatch', ($uid eq '.' ||
-                               $uid eq $self->{UID}) ? 'parted' : 'part',
-                  $uid);
+       my ($kernel, $self) = @_[KERNEL,OBJECT,ARG0,ARG1];
+       my $event = 'part';
+       if (!defined($self->{OF})               ||
+               $self->{OF} eq '.'                      ||
+               $self->{OF} eq $self->{UID}) {
+               $event = 'parted';
+       }
+       _call('dispatch', $event);
 }
 
 my %autorespond = (
@@ -481,17 +496,16 @@
 );
 
 sub event_MSG {
-       my ($kernel, $self, $uid, $type, @text) = @_[KERNEL,OBJECT,ARG0..$#_];
+       my ($kernel, $self, $type, @text) = @_[KERNEL,OBJECT,ARG0..$#_];
        if ($self->{autorespond}->{$type} && exists $autorespond{$type}) {
-               $autorespond{$type}->(@_[0..ARG0-1], $uid, @text);
+               $autorespond{$type}->(@_[0..ARG0-1], @text);
+               return if ($self->{supress_auto});
        }
        
-       # I can't help but feel that argument order of msg and pmsg
-       # should better match reality.... (dylan)
-       if ($self->{scope}) {
-               _call('dispatch', 'msg', $type, $uid, @text);
+       if ($self->{IN}) {
+               _call('dispatch', 'msg', $type, @text);
        } else {
-               _call('dispatch', 'pmsg', $type, $uid, @text);
+               _call('dispatch', 'pmsg', $type, @text);
        }
 
 }
@@ -540,13 +554,21 @@
 }
 
 sub event_IN {
-       my ($kernel, $self, $scope, @cmd) = @_[KERNEL,OBJECT,ARG0..$#_];
-       my $save = $self->{scope};
-       $self->{scope} = $scope;
+       my ($kernel, $self, $cid, @cmd) = @_[KERNEL,OBJECT,ARG0..$#_];
+       my $save = $self->{IN};
+       $self->{IN} = $cid;
        _call('input', [EMAIL PROTECTED]);
-       $self->{scope} = $save;
+       $self->{IN} = $save;
 }
 
+sub event_OF {
+       my ($kernel, $self, $uid, @cmd) = @_[KERNEL,OBJECT,ARG0..$#_];
+       my $save = $self->{OF};
+       $self->{OF} = $uid;
+       _call('input', [EMAIL PROTECTED]);
+       $self->{OF} = $save;
+}
+
 ### CLIENT EVENTS
 
 =head2 login($Z<>pass)
@@ -601,25 +623,25 @@
        $kernel->yield('send', 'MAKE', $cid);
 }
 
-=head2 B<msg($Z<>type, $Z<>channel, $Z<>text)>
+=head2 B<msg($Z<>channel, $Z<>type, $Z<>text)>
 
 Sends a message with specified type and text to $channel.
 
 =cut
 
 sub msg {
-       my ($kernel, $self, $type, $where, $message) = 
@_[KERNEL,OBJECT,ARG0..ARG2];
+       my ($kernel, $self, $where, $type, $message) = 
@_[KERNEL,OBJECT,ARG0..ARG2];
        $kernel->yield('send', 'IN', $where, 'MSG', $type, $message);
 }
 
-=head2 B<pmsg($Z<>type, $Z<>uid, $Z<>text)>
+=head2 B<pmsg($Z<>uid, $Z<>type, $Z<>text)>
 
 Sends a private message with specified type and text to $uid.
 
 =cut
 
 sub pmsg {
-       my ($kernel, $self, $type, $where, $message) = 
@_[KERNEL,OBJECT,ARG0..ARG2];
+       my ($kernel, $self, $where, $type, $message) = 
@_[KERNEL,OBJECT,ARG0..ARG2];
        $kernel->yield('send', 'TO', $where, 'MSG', $type, $message);
 }
 
@@ -714,11 +736,12 @@
 
 =head1 EVENTS
 
-Event callbacks are called with the frist argument being the event arguments 
and
-the second argument being the scope set by IN (or undef if not set). Example:
+Event callbacks are called with the frist argument being the event arguments,
+the second argument being the channel set by IN (or undef if not set), and the
+thirs argument being the UID set by OF. Example:
 
   sub haver_connect_fail {
-       my ($args, $scope) = @_[ARG0,ARG1];
+       my ($args, $cid, $uid) = @_[ARG0..ARG2];
        my ($enum, $estr) = @$args;
        # ...
   }
@@ -765,33 +788,33 @@
 
 Server is closing connection, and sent $etyp and $estr
 
-=head2 haver_join($Z<>uid)
+=head2 haver_join(Z<>)
 
-$uid has joined $scope
+$uid has joined $cid
 
-=head2 haver_joined($Z<>uid)
+=head2 haver_joined(Z<>)
 
-The client has joined $scope.
+The client has joined $cid.
 
-=head2 haver_part($Z<>cid, $Z<>uid)
+=head2 haver_part(Z<>)
 
 $uid has left $cid.
 
-=head2 haver_parted($Z<>cid)
+=head2 haver_parted(Z<>)
 
 The client has left $Z<>cid.
 
-=head2 haver_msg($Z<>type, $Z<>cid, $Z<>uid, $Z<>text)
+=head2 haver_msg($Z<>type, @Z<>msg)
 
-A public message with type $type and contents $text was sent on channel $cid 
by user $uid.
+A public message with type $type and contents @msg was sent on channel $cid by 
user $uid.
 
-=head2 haver_pmsg($Z<>type, $z<>uid, $Z<>text)
+=head2 haver_pmsg($Z<>type, @Z<>text)
 
-A private message with type $type and contents $text was sent to you by user 
$uid.
+A private message with type $type and contents @msg was sent to you by user 
$uid.
 
-=head2 haver_users($Z<>where, @Z<>who)
+=head2 haver_users(@Z<>who)
 
-Channel $where has the users listed in @who in it. Sent in response to message 
users().
+Channel $cid has the users listed in @who in it. Sent in response to message 
users().
 
 =head2 haver_bye($Z<>why)
 
@@ -811,7 +834,7 @@
 The server has sent a fatal error message with code $err and arguments @args. 
$short and $long have the
 short and long human-readable forms, respectively. The connection will be 
closed shortly.
 
-=head2 haver_quit($Z<>uid, $Z<>why)
+=head2 haver_quit($Z<>why)
 
 UID $uid has disconnected due to the reason in $why.
 


Reply via email to