/[cvs]/nfo/perl/libs/POE/Component/StorageAgent.pm
ViewVC logotype

Annotation of /nfo/perl/libs/POE/Component/StorageAgent.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Sun Jun 29 01:35:30 2003 UTC (21 years ago) by joko
Branch: MAIN
CVS Tags: HEAD
initial commit

1 joko 1.1 ## ------------------------------------------------------------------------
2     ## $Id: WebCache.pm,v 1.3 2003/06/25 23:37:04 joko Exp $
3     ## ------------------------------------------------------------------------
4     ## $Log: WebCache.pm,v $
5     ## ------------------------------------------------------------------------
6    
7    
8     package POE::Component::StorageAgent;
9    
10     use strict;
11     use warnings;
12    
13     use POE qw( Session );
14     #use Data::Storage::Container;
15     use Data::Dumper;
16    
17    
18     sub new {
19     my $classname = shift;
20     my $self = {};
21     bless $self, $classname;
22    
23     $self->{config} = shift;
24    
25     POE::Session->create(
26     object_states => [
27     $self => [qw( _start _stop query deploy )]
28     ]
29     );
30    
31     }
32    
33     # This is not a POE method. It's a plain OO one.
34     sub debug {
35     my $self = shift;
36     my $msg = shift;
37     $msg ||= '';
38     print STDERR __PACKAGE__ . ": " . $msg, "\n";
39     }
40    
41    
42     sub _start {
43     my ( $self, $kernel, $heap ) = @_[ OBJECT, KERNEL, HEAP ];
44     $self->debug("_start");
45    
46     # announce ourselves as global singleton
47     $kernel->alias_set("storage");
48    
49     #$kernel->yield( 'configure' );
50     eval qq{
51     use Data::Storage::Container;
52     };
53     if ($@) {
54     print STDERR "ERROR: ", $@, "\n";
55     return;
56     }
57    
58     #print Dumper($self->{config});
59    
60     my $name = "dummydb";
61     my $DSC = Data::Storage::Container->new();
62     #foreach (keys %{$self->{config}}) {
63     # $heap->{DSC}->addConfig($_, $self->{config}->{$_});
64     #}
65     $DSC->addConfig($name, $self->{config});
66     $DSC->initLocators();
67     $DSC->initStorages();
68    
69     $heap->{STORAGE} = $DSC->{storage}->{$name};
70    
71     };
72    
73     sub _stop {
74     my ( $self, $kernel, $heap ) = @_[ OBJECT, KERNEL, HEAP ];
75     $self->debug("_stop");
76     };
77    
78     sub query {
79     my ( $self, $kernel, $heap, $sender ) = @_[ OBJECT, KERNEL, HEAP, SENDER ];
80     $self->debug("query");
81     my $query = $_[ARG0];
82     #print Dumper($query);
83     my $result = $heap->{STORAGE}->sendQuery($query);
84     $kernel->post( $sender => handle_storage_result => $result );
85     };
86    
87     sub deploy {
88     my ( $self, $kernel, $heap ) = @_[ OBJECT, KERNEL, HEAP ];
89     $self->debug("deploy");
90     $heap->{STORAGE}->deploySchema();
91     };
92    
93     1;
94     __END__

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed