services: services/perl/lib/AppSwitch/Services Daemon.pm
Status: Pre-Alpha
Brought to you by:
jgsmith
|
From: <app...@li...> - 2001-07-30 01:38:09
|
jgsmith 01/07/29 18:38:09
Modified: perl/lib/AppSwitch/Services Daemon.pm
Log:
Added support for aliasing services -- foo.bar. should be able to handle
requests in the foo. namespace.
Revision Changes Path
1.2 +10 -2 services/perl/lib/AppSwitch/Services/Daemon.pm
Index: Daemon.pm
===================================================================
RCS file: /cvsroot/appswitch/services/perl/lib/AppSwitch/Services/Daemon.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -u -r1.1 -r1.2
--- Daemon.pm 2001/07/29 18:17:23 1.1
+++ Daemon.pm 2001/07/30 01:38:09 1.2
@@ -8,11 +8,13 @@
sub register {
my($self, $handler) = @_;
- $self -> {handler} -> {handlers} -> {$handler -> service} = $handler;
+ $self -> set_handler($handler -> service, $handler);
}
sub query_handler { $_[0] -> {handler} -> {handlers} -> {$_[1]} }
+sub set_handler { $_[0] -> {handler} -> {handlers} -> {$_[1]} = $_[2] }
+
sub run {
my($self) = @_;
@@ -56,6 +58,12 @@
my($service, $method) = (lc($1), lc($2));
return undef unless defined $self -> {handlers} -> {$service};
+
+ while($service && !ref($self -> {handlers} -> {$service})) {
+ $service = $self -> {handlers} -> {$service};
+ }
+
+ return undef unless $service && defined $self -> {handlers} -> {$service};
*$m = sub { shift -> {handlers} -> {$service} -> dispatch($method, @_) };
|