Author: dylan
Date: 2005-05-10 04:17:06 -0400 (Tue, 10 May 2005)
New Revision: 681
Added:
trunk/main/server/lib/Haver/Server/Talker.pm
Removed:
trunk/main/server/lib/Haver/Server/Speaker.pm
Modified:
trunk/
Log:
[EMAIL PROTECTED]: dylan | 2005-05-10 04:00:00 -0400
Talker is nicer to type. :P
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:954
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
+ 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:955
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
Deleted: trunk/main/server/lib/Haver/Server/Speaker.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Speaker.pm 2005-05-10 08:17:03 UTC
(rev 680)
+++ trunk/main/server/lib/Haver/Server/Speaker.pm 2005-05-10 08:17:06 UTC
(rev 681)
@@ -1,91 +0,0 @@
-package Haver::Server::Speaker;
-use Haver::Base::Session -base;
-use strict;
-use warnings;
-
-use Haver::Protocol::Filter;
-use POE::Wheel::ReadWrite;
-use POE::Driver::SysRW;
-
-
-states qw(
- _start _stop
- input error flush
- shutdown
-);
-
-sub _start {
- my ($heap, $session, $kernel, $opt) = @_[ HEAP, SESSION, KERNEL,
ARG0];
- my ($address, $socket, $port) = ($opt->{address}, delete $opt->{sock},
$opt->{port});
-
- Log('notice', "Connection from $address:$port");
- binmode $socket, ":utf8";
- my $client = new POE::Wheel::ReadWrite(
- Handle => $socket,
- Driver => new POE::Driver::SysRW,
- Filter => new Haver::Protocol::Filter,
- InputEvent => 'input',
- FlushedEvent => 'flush',
- ErrorEvent => 'error',
- );
-
- %$heap = (
- %$opt,
- client => $client,
- );
-}
-
-
-sub _stop {
- my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
-
- my ($address, $port) = @$heap{qw(address port)};
- $kernel->call('Logger', 'note', "Lost connection from
${address}:$port");
-}
-
-
-sub input {
- my ($kernel, $heap, $args) = @_[KERNEL, HEAP, ARG0];
-
- my @copy = @$args;
- return if $heap->{plonk};
- return if $heap->{shutdown};
-
- my $cmd = shift @$args;
- my $event = 'msg_' . $cmd;
- $event =~ s/:/_/g;
-
- Log('info', "Command: $cmd");
- $kernel->yield($event, $args, $cmd);
-}
-
-sub flush {
- my ($kernel, $heap) = @_[KERNEL, HEAP];
-
- if ($heap->{shutdown}) {
- delete $heap->{client};
- }
-}
-
-
-sub error {
- my ($kernel, $heap, $operation, $errnum, $errstr) = @_[KERNEL, HEAP,
ARG0..ARG3];
-
- Log('error',
- "Socket generated $operation error ${errnum}: $errstr");
-
- $kernel->yield('shutdown', 'DISCON');
-}
-
-
-sub shutdown {
- my ($kernel, $heap, $session, @args) = @_[KERNEL, HEAP, SESSION, ARG0
.. $#_];
- return if $heap->{shutdown};
-
- Log('info', 'Shutting down client session');
- eval { $heap->{client}->put(['BYE', @args]) };
- $heap->{shutdown} = 1;
- $kernel->alarm_remove_all();
-}
-
-1;
Added: trunk/main/server/lib/Haver/Server/Talker.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Talker.pm 2005-05-10 08:17:03 UTC
(rev 680)
+++ trunk/main/server/lib/Haver/Server/Talker.pm 2005-05-10 08:17:06 UTC
(rev 681)
@@ -0,0 +1,91 @@
+package Haver::Server::Speaker;
+use Haver::Base::Session -base;
+use strict;
+use warnings;
+
+use Haver::Protocol::Filter;
+use POE::Wheel::ReadWrite;
+use POE::Driver::SysRW;
+
+
+states qw(
+ _start _stop
+ input error flush
+ shutdown
+);
+
+sub _start {
+ my ($heap, $session, $kernel, $opt) = @_[ HEAP, SESSION, KERNEL,
ARG0];
+ my ($address, $socket, $port) = ($opt->{address}, delete $opt->{sock},
$opt->{port});
+
+ Log('notice', "Connection from $address:$port");
+ binmode $socket, ":utf8";
+ my $client = new POE::Wheel::ReadWrite(
+ Handle => $socket,
+ Driver => new POE::Driver::SysRW,
+ Filter => new Haver::Protocol::Filter,
+ InputEvent => 'input',
+ FlushedEvent => 'flush',
+ ErrorEvent => 'error',
+ );
+
+ %$heap = (
+ %$opt,
+ client => $client,
+ );
+}
+
+
+sub _stop {
+ my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
+
+ my ($address, $port) = @$heap{qw(address port)};
+ $kernel->call('Logger', 'note', "Lost connection from
${address}:$port");
+}
+
+
+sub input {
+ my ($kernel, $heap, $args) = @_[KERNEL, HEAP, ARG0];
+
+ my @copy = @$args;
+ return if $heap->{plonk};
+ return if $heap->{shutdown};
+
+ my $cmd = shift @$args;
+ my $event = 'msg_' . $cmd;
+ $event =~ s/:/_/g;
+
+ Log('info', "Command: $cmd");
+ $kernel->yield($event, $args, $cmd);
+}
+
+sub flush {
+ my ($kernel, $heap) = @_[KERNEL, HEAP];
+
+ if ($heap->{shutdown}) {
+ delete $heap->{client};
+ }
+}
+
+
+sub error {
+ my ($kernel, $heap, $operation, $errnum, $errstr) = @_[KERNEL, HEAP,
ARG0..ARG3];
+
+ Log('error',
+ "Socket generated $operation error ${errnum}: $errstr");
+
+ $kernel->yield('shutdown', 'DISCON');
+}
+
+
+sub shutdown {
+ my ($kernel, $heap, $session, @args) = @_[KERNEL, HEAP, SESSION, ARG0
.. $#_];
+ return if $heap->{shutdown};
+
+ Log('info', 'Shutting down client session');
+ eval { $heap->{client}->put(['BYE', @args]) };
+ $heap->{shutdown} = 1;
+ $kernel->alarm_remove_all();
+}
+
+1;
Property changes on: trunk/main/server/lib/Haver/Server/Talker.pm
___________________________________________________________________
Name: svn:eol-style
+ native