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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Sun Jun 29 01:35:30 2003 UTC (20 years, 10 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
initial commit

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