Author: dylan
Date: 2005-12-10 00:47:29 -0500 (Sat, 10 Dec 2005)
New Revision: 952

Added:
   trunk/perl/server/lib/Haver/Server/Wheel/Attr.pm
Modified:
   trunk/
Log:
Forgot to add Attr wheel.


Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/havercurs-objc:43089
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/winch/trunk:43192
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:1689
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
   + 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/havercurs-objc:43089
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/winch/trunk:43192
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:1691
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238

Added: trunk/perl/server/lib/Haver/Server/Wheel/Attr.pm
===================================================================
--- trunk/perl/server/lib/Haver/Server/Wheel/Attr.pm    2005-12-10 05:46:31 UTC 
(rev 951)
+++ trunk/perl/server/lib/Haver/Server/Wheel/Attr.pm    2005-12-10 05:47:29 UTC 
(rev 952)
@@ -0,0 +1,59 @@
+# vim: set ts=4 sw=4 noexpandtab si ai sta tw=100:
+# This module is copyrighted, see end of file for details.
+package Haver::Server::Wheel::Attr;
+use strict;
+use warnings;
+
+use Haver::Server::Wheel -base;
+use Haver::Util ':all';
+
+sub setup {
+       my $self = shift;
+       $self->msg(
+               qw(
+                       ATTR:SET
+                       ATTR:GET
+               )
+       );
+}
+
+sub msg_ATTR_GET {
+       my ($kernel, $heap, $args) = @_[KERNEL, HEAP, ARG0];
+       my $lobby = $heap->{lobby};
+       my ($ns, $name, $key) = @$args;
+
+       unless (is_valid_name($name)) {
+               call('fail', "invalid.name", $name);
+               return;
+       }
+       unless ($lobby->contains($ns, $name)) {
+               call('fail', "unknown.$ns", $name);
+               return;
+       }
+       
+       my $entity = $lobby->get($ns, $name);
+       $heap->{client}->put(['ATTR:GOT', $key, $entity->{attr}{$key} || '']);
+}
+
+sub msg_ATTR_SET {
+       my ($kernel, $heap, $args) = @_[KERNEL, HEAP, ARG0];
+       my $lobby = $heap->{lobby};
+       my ($ns, $name, $key, $val) = @$args;
+
+       unless (is_valid_name($name)) {
+               call('fail', "invalid.name", $name);
+               return;
+       }
+       if ($lobby->contains($ns, $name)) {
+               call('fail', "unknown.$ns", $name);
+               return;
+       }
+       
+       
+       my $entity = $lobby->get($ns, $name);
+       $entity->{attr}{$key} = $val;
+       
+       $heap->{client}->put(['ATTR:SET', $key]);
+}
+
+1;


Reply via email to