/[cvs]/nfo/perl/libs/Data/Storage/Result/Tangram.pm
ViewVC logotype

Contents of /nfo/perl/libs/Data/Storage/Result/Tangram.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations)
Thu Dec 5 08:01:26 2002 UTC (21 years, 7 months ago) by joko
Branch: MAIN
Changes since 1.1: +27 -6 lines
+ sub getStatus utilizing isEmpty to determine if result is set/unset and/or filled/unfilled

1 ############################################
2 #
3 # $Id: Tangram.pm,v 1.1 2002/11/29 04:55:45 joko Exp $
4 #
5 # $Log: Tangram.pm,v $
6 # Revision 1.1 2002/11/29 04:55:45 joko
7 # + initial check-in
8 #
9 #
10 ############################################
11
12
13 package Data::Storage::Result::Tangram;
14
15 use strict;
16 use warnings;
17
18 use base ("Data::Storage::Result::Abstract");
19 use Data::Dumper;
20 use Data::Compare::Struct qw( isEmpty );
21
22 sub DESTROY {
23 my $self = shift;
24 #$logger->debug( __PACKAGE__ . "->" . "DESTROY" );
25 $self->{RESULTHANDLE} && $self->{RESULTHANDLE}->close();
26 }
27
28 sub getNextEntry {
29 my $self = shift;
30
31 return if !$self->{RESULTHANDLE};
32 $self->{resulthandle_type} = ref($self->{RESULTHANDLE}) if !$self->{resulthandle_type};
33
34 # is result already opened?
35 if ($self->{open}) {
36 $self->{entry_count}++;
37 return $self->{RESULTHANDLE}->next()
38 if $self->{resulthandle_type} eq 'Tangram::Cursor';
39 return $self->{members}->[$self->{entry_count}]
40 if $self->{resulthandle_type} eq 'Set::Object';
41
42 # open result!
43 } else {
44 $self->{entry_count} = 0;
45 return $self->{RESULTHANDLE}->execute()
46 if $self->{resulthandle_type} eq 'Tangram::Cursor';
47 #print Dumper($self->{RESULTHANDLE}->members()); exit;
48 if ($self->{resulthandle_type} eq 'Set::Object') {
49 my @members = $self->{RESULTHANDLE}->members();
50 $self->{members} = \@members;
51 return $self->{members}->[$self->{entry_count}];
52 }
53 $self->{open} = 1;
54 }
55 }
56
57 sub getStatus {
58 my $self = shift;
59 my $status;
60 if ($self->{resulthandle_type} eq 'Tangram::Cursor') {
61 $status = {
62 err => $self->{RESULTHANDLE}->err,
63 errstr => $self->{RESULTHANDLE}->errstr,
64 state => $self->{RESULTHANDLE}->state,
65 };
66 }
67 if ($self->{resulthandle_type} eq 'Set::Object') {
68 #print Dumper($self->{RESULTHANDLE}->members());
69 $status = {
70 empty => isEmpty($self->{RESULTHANDLE}),
71 },
72 }
73 return $status;
74 }
75
76
77 1;

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