Author: dylan
Date: 2004-12-17 00:05:29 -0500 (Fri, 17 Dec 2004)
New Revision: 423

Modified:
   trunk/main/server/lib/Haver/Server/Plugin.pm
Log:
API changes.

Actually, this maybe should go into common.


Modified: trunk/main/server/lib/Haver/Server/Plugin.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Plugin.pm        2004-12-17 03:51:19 UTC 
(rev 422)
+++ trunk/main/server/lib/Haver/Server/Plugin.pm        2004-12-17 05:05:29 UTC 
(rev 423)
@@ -1,4 +1,4 @@
-# vim: set ft=perl ts=4 sw=4:
+# vim: set ft=perl ts=4 sw=4 expandtab ai si sta tw=104:
 # Haver::Server::Commands - description
 # 
 # Copyright (C) 2004 Dylan William Hardison.
@@ -22,8 +22,9 @@
 use Carp;
 use base 'Haver::Base';
 
+use Haver::Preprocessor;
+
 our $VERSION = '0.01';
-my $Kernel = $POE::Kernel::poe_kernel;
 
 sub initialize {
        my ($me) = @_;
@@ -32,8 +33,8 @@
                croak __PACKAGE__ . " is a virtual base class!";
        }
 
-       $me->{provides} = [];
-       $me->{states}   = {};
+       $me->{provided} = [];
+       $me->{registry} = {};
 
        $me->setup();
 
@@ -45,35 +46,22 @@
 sub setup {
        my ($me) = @_;
 
-       $me->provide('on_', $me->states);
 }
 
-sub provide_prefix_both {
-       my ($me, $prefix, @states) = @_;
+sub provide {
+       my $me = shift;
 
-       foreach my $state (@states) {
-               $me->provide("$prefix$state");
-       }
+    foreach my $thing (@_) {
+        # ASSERT: $thing eq 'ARRAY' or not ref $thing;
+        push(@{ $me->{provided} }, ref $thing ? $thing : [ $thing ]);
+    }
 }
 
-sub provide_prefix {
-       my ($me, $prefix, @states) = @_;
-
-       foreach my $state (@states) {
-               $me->provide($state, "$prefix$state");
-       }
+sub provided {
+    my $me = shift;
+    return @{ $me->{provided} };
 }
 
-sub provide {
-       my ($me, $state, $method) = @_;
-
-       foreach my $state (@states) {
-               push @{ $me->{provides} }, [ $state, $method ];
-       }
-
-       return $me;
-}
-
 sub load {
        my ($me) = @_;
 
@@ -92,16 +80,21 @@
        }
 }
 
+sub registered {
+    my $me = shift;
+    return keys %{ $me->{registry} };
+}
 
 sub register {
        my ($me, $state, $method) = @_;
+    my $kernel = $POE::Kernel::poe_kernel;
 
-       if (exists $me->{states}{$state}) {
+       if (exists $me->{registry}{$state}) {
                croak "Can't register $state, already registered!";
        }
        
-       $me->{states}{$state} = 1;
-       $Kernel->state(
+       $me->{registry}{$state} = 1;
+       $kernel->state(
                $state, 
                not($me->{package}) ? $me : ref($me),
                $method,
@@ -110,30 +103,16 @@
 
 sub unregister {
        my ($this, $state) = @_;
+    my $kernel = $POE::Kernel::poe_kernel;
 
-       if (not exists $me->{states}{$state}) {
+       if (not exists $me->{registry}{$state}) {
                croak "Can't unregister $state, it is not registered!";
        }
 
-       delete $me->{states}{$state};
-       $Kernel->state($state);
+       delete $me->{registry}{$state};
+       $kernel->state($state);
 }
 
-sub registered {
-       my ($me) = @_;
-
-       return keys %{ $me->{states} };
-}
-
-# Returns: List of arrays.
-# Example:
-#    (['state'], ['state', 'method']);
-sub provided {
-       my ($me) = @_;
-
-       return @{ $me->{provides} };
-}
-
 sub finalize {
        my ($me) = @_;
        


Reply via email to