Author: dylan
Date: 2004-12-17 00:16:52 -0500 (Fri, 17 Dec 2004)
New Revision: 426
Modified:
trunk/main/server/lib/Haver/Server/Event.pm
trunk/main/server/lib/Haver/Server/Event/Login.pm
trunk/main/server/lib/Haver/Server/Plugin.pm
Log:
hmm, Events is a better name. I'll do that after this commit.
Modified: trunk/main/server/lib/Haver/Server/Event/Login.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Event/Login.pm 2004-12-17 05:07:04 UTC
(rev 425)
+++ trunk/main/server/lib/Haver/Server/Event/Login.pm 2004-12-17 05:16:52 UTC
(rev 426)
@@ -16,7 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with this module; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-package Haver::Server::Commands::Connection;
+package Haver::Server::Events::Connection;
use strict;
use warnings;
@@ -38,7 +38,7 @@
);
}
-sub commands {
+sub events {
qw(
HAVER
IDENT
@@ -48,7 +48,7 @@
);
}
-sub cmd_HAVER {
+sub evt_HAVER {
my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
my $client = $args->[0];
@@ -64,7 +64,7 @@
$kernel->yield('want', 'IDENT');
}
-sub cmd_IDENT {
+sub evt_IDENT {
my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
my ($id, $ns) = @$args;
@@ -120,7 +120,7 @@
$kernel->yield('accept', $id, $user);
}
-sub cmd_AUTH {
+sub evt_AUTH {
my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
my $method = $args->[0];
@@ -137,7 +137,7 @@
}
}
-sub cmd_AUTH_PASS {
+sub evt_AUTH_PASS {
my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
my ($pass) = @$args;
my $user = delete $heap->{user};
Modified: trunk/main/server/lib/Haver/Server/Event.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Event.pm 2004-12-17 05:07:04 UTC (rev
425)
+++ trunk/main/server/lib/Haver/Server/Event.pm 2004-12-17 05:16:52 UTC (rev
426)
@@ -1,5 +1,5 @@
# vim: set ft=perl ts=4 sw=4:
-# Commands - description
+# Haver::Server::Event - Base class for
#
# Copyright (C) 2004 Dylan William Hardison.
#
@@ -16,24 +16,27 @@
# You should have received a copy of the GNU General Public License
# along with this module; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-package Haver::Server::Commands;
+package Haver::Server::Event;
use strict;
use warnings;
our $VERSION = '0.01';
-sub setup {
- my $me = shift;
+sub new {
+ my $me = shift->SUPER::new(@_);
if (ref($me) eq __PACKAGE__) {
croak __PACKAGE__ . " is a virtual base class!";
}
+}
- $me->SUPER::setup();
- $me->provide_prefix_both('cmd_', $me->commands);
+sub setup {
+ my $me = shift;
+
+ $me->provide_prefix('on_', $me->states);
+ $me->provide_prefix_both('evt_', $me->events);
}
1;
-
Modified: trunk/main/server/lib/Haver/Server/Plugin.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Plugin.pm 2004-12-17 05:07:04 UTC
(rev 425)
+++ trunk/main/server/lib/Haver/Server/Plugin.pm 2004-12-17 05:16:52 UTC
(rev 426)
@@ -26,14 +26,18 @@
our $VERSION = '0.01';
-sub initialize {
- my ($me) = @_;
+sub new {
+ my $me = shift->SUPER::new(@_);
if (ref($me) eq __PACKAGE__) {
croak __PACKAGE__ . " is a virtual base class!";
}
+}
- $me->{provided} = [];
+sub initialize {
+ my ($me) = @_;
+
+ $me->{provided} = [];
$me->{registry} = {};
$me->setup();
@@ -57,6 +61,24 @@
}
}
+sub provide_prefix {
+ my $me = shift;
+ my $prefix = shift;
+
+ $me->provide (
+ map { [ $_, $prefix . $_ ] } @_
+ );
+}
+
+sub provide_prefix_both {
+ my $me = shift;
+ my $prefix = shift;
+
+ $me->provide (
+ map [ $prefix . $_, $prefix . $_ ], @_
+ );
+}
+
sub provided {
my $me = shift;
return @{ $me->{provided} };