/[cvs]/nfo/perl/libs/Data/Storage/Handler/AutoSymbol.pm
ViewVC logotype

Contents of /nfo/perl/libs/Data/Storage/Handler/AutoSymbol.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations)
Tue May 13 08:02:13 2003 UTC (21 years, 1 month ago) by joko
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +58 -51 lines
removed xml stuff

1 ## -------------------------------------------------------------------------
2 ## $Id: AutoSymbol.pm,v 1.1 2003/04/18 17:20:21 joko Exp $
3 ## -------------------------------------------------------------------------
4 ## $Log: AutoSymbol.pm,v $
5 ## Revision 1.1 2003/04/18 17:20:21 joko
6 ## intial commit
7 ##
8 ## -------------------------------------------------------------------------
9
10
11 =pod
12
13 =head1 DESCRIPTION
14
15 Should handle primitives (scalar, HASH, ARRAY) transparently.
16 After that: Enhance to FILEHANDLE and/or OBJECT.
17
18
19 =cut
20
21
22 package Data::Storage::Handler::AutoSymbol;
23
24 use strict;
25 use warnings;
26
27 use base qw(
28 DesignPattern::Object
29 DesignPattern::Logger
30 Data::Storage::Handler::Abstract
31 );
32
33
34 use Data::Dumper;
35 use Data::Storage::Result::Hash;
36
37
38 sub getChildNodes {
39 my $self = shift;
40
41 my $storage = $self->{reference};
42
43 my $nodes;
44 if (not ref $storage) {
45 $nodes = [ $storage ];
46 } elsif (ref $storage eq 'HASH') {
47 $nodes = [ sort keys %$storage ];
48 }
49
50 return $nodes;
51
52 }
53
54 sub sendQuery {
55 my $self = shift;
56 my $query = shift;
57 my $options = shift;
58
59 #print "query: ", Dumper($query);
60
61 my $slot;
62 # by list
63 #$slot = $query->{node};
64 # by item
65 $slot = $query->{options}->{GUID};
66
67 my $storage = $self->{reference};
68
69 my $payload;
70 if (not ref $storage) {
71 $payload = $storage;
72 } elsif (ref $storage eq 'HASH') {
73 if ($slot) {
74 # TODO: enhance using ref_slot
75 $payload = $storage->{$slot};
76 } else {
77 $payload = $storage;
78 }
79 }
80
81 #print "payload: ", Dumper($payload);
82 #return;
83
84 if ($payload) {
85 my $result = Data::Storage::Result::Hash->new( RESULTHANDLE => $payload );
86 return $result;
87 }
88
89 }
90
91 sub getResult_tmp {
92 my $self = shift;
93 return $self->{buffer};
94 }
95
96 sub isEmpty_tmp {
97 my $self = shift;
98 return not defined $self->{buffer};
99 }
100
101
102 1;
103 __END__

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