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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide 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 joko 1.1 ############################################
2     #
3 joko 1.2 # $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 joko 1.1 #
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 joko 1.2 use Data::Compare::Struct qw( isEmpty );
21 joko 1.1
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 joko 1.2 # open result!
43 joko 1.1 } 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 joko 1.2 $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 joko 1.1 }
73 joko 1.2 return $status;
74 joko 1.1 }
75    
76    
77     1;

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