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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by joko, Thu Dec 5 08:01:26 2002 UTC revision 1.7 by joko, Wed Jun 25 22:59:59 2003 UTC
# Line 3  Line 3 
3  #  $Id$  #  $Id$
4  #  #
5  #  $Log$  #  $Log$
6    #  Revision 1.7  2003/06/25 22:59:59  joko
7    #  tweaked behaviour: only "->close" result if it is of type "Tangram::Cursor"
8    #
9    #  Revision 1.6  2003/04/09 07:11:01  joko
10    #  minor fix
11    #
12    #  Revision 1.5  2003/04/09 02:09:47  joko
13    #  bugfix: check for existance of '->close'-method before calling it on the 'RESULTHANDLE'-instance
14    #
15    #  Revision 1.4  2003/03/27 15:31:15  joko
16    #  fixes to modules regarding new namespace(s) below Data::Mungle::*
17    #
18    #  Revision 1.3  2003/01/31 06:34:49  joko
19    #  + fixes to 'getNextEntry' and 'getStatus'
20    #
21  #  Revision 1.2  2002/12/05 08:01:26  joko  #  Revision 1.2  2002/12/05 08:01:26  joko
22  #  + sub getStatus utilizing isEmpty to determine if result is set/unset and/or filled/unfilled  #  + sub getStatus utilizing isEmpty to determine if result is set/unset and/or filled/unfilled
23  #  #
# Line 20  use warnings; Line 35  use warnings;
35    
36  use base ("Data::Storage::Result::Abstract");  use base ("Data::Storage::Result::Abstract");
37  use Data::Dumper;  use Data::Dumper;
38  use Data::Compare::Struct qw( isEmpty );  use Data::Mungle::Compare::Struct qw( isEmpty );
39    
40  sub DESTROY {  sub DESTROY {
41    my $self = shift;    my $self = shift;
42      
43      my $is_object = 0;
44      
45    #$logger->debug( __PACKAGE__ . "->" . "DESTROY" );    #$logger->debug( __PACKAGE__ . "->" . "DESTROY" );
46    $self->{RESULTHANDLE} && $self->{RESULTHANDLE}->close();    #eval {
47      #print "ref: ", ref($self->{RESULTHANDLE}), "\n";
48      
49      # object handle destructor
50      if ($self->{resulthandle_type} eq 'Tangram::Cursor') {
51        #$self->{RESULTHANDLE} && ref($self->{RESULTHANDLE}) &&
52        #ref($self->{RESULTHANDLE}) && $self->{RESULTHANDLE}->can('close') && $self->{RESULTHANDLE}->close();
53        $self->{RESULTHANDLE}->close();
54      }
55      
56      # delete ref?
57      delete $self->{RESULTHANDLE};
58  }  }
59    
60  sub getNextEntry {  sub getNextEntry {
# Line 37  sub getNextEntry { Line 66  sub getNextEntry {
66    # is result already opened?    # is result already opened?
67    if ($self->{open}) {    if ($self->{open}) {
68      $self->{entry_count}++;      $self->{entry_count}++;
69        
70        # NEW as of 2003-06-24: RESULTHANDLE == ARRAY
71        return $self->{RESULTHANDLE}->[$self->{entry_count}] if (ref($self->{RESULTHANDLE}) eq 'ARRAY');
72        
73      return $self->{RESULTHANDLE}->next()      return $self->{RESULTHANDLE}->next()
74        if $self->{resulthandle_type} eq 'Tangram::Cursor';        if $self->{resulthandle_type} eq 'Tangram::Cursor';
75      return $self->{members}->[$self->{entry_count}]      return $self->{members}->[$self->{entry_count}]
# Line 45  sub getNextEntry { Line 78  sub getNextEntry {
78    # open result!    # open result!
79    } else {    } else {
80      $self->{entry_count} = 0;      $self->{entry_count} = 0;
81        $self->{open} = 1;
82    
83        # NEW as of 2003-06-24: RESULTHANDLE == ARRAY
84        return $self->{RESULTHANDLE}->[$self->{entry_count}] if (ref($self->{RESULTHANDLE}) eq 'ARRAY');
85    
86      return $self->{RESULTHANDLE}->execute()      return $self->{RESULTHANDLE}->execute()
87        if $self->{resulthandle_type} eq 'Tangram::Cursor';        if $self->{resulthandle_type} eq 'Tangram::Cursor';
88      #print Dumper($self->{RESULTHANDLE}->members()); exit;      #print Dumper($self->{RESULTHANDLE}->members()); exit;
# Line 53  sub getNextEntry { Line 91  sub getNextEntry {
91        $self->{members} = \@members;        $self->{members} = \@members;
92        return $self->{members}->[$self->{entry_count}];        return $self->{members}->[$self->{entry_count}];
93      }      }
     $self->{open} = 1;  
94    }    }
95  }  }
96    
97  sub getStatus {  sub getStatus {
98    my $self = shift;    my $self = shift;
99    my $status;    my $status;
100      
101      $self->{resulthandle_type} ||= '';
102      
103    if ($self->{resulthandle_type} eq 'Tangram::Cursor') {    if ($self->{resulthandle_type} eq 'Tangram::Cursor') {
104    =pod
105        print Dumper($self->{RESULTHANDLE});
106      $status = {      $status = {
107        err => $self->{RESULTHANDLE}->err,        err => $self->{RESULTHANDLE}->err,
108        errstr => $self->{RESULTHANDLE}->errstr,        errstr => $self->{RESULTHANDLE}->errstr,
109        state => $self->{RESULTHANDLE}->state,        state => $self->{RESULTHANDLE}->state,
110      };      };
111    =cut
112    }    }
113    if ($self->{resulthandle_type} eq 'Set::Object') {    if ($self->{resulthandle_type} eq 'Set::Object') {
114      #print Dumper($self->{RESULTHANDLE}->members());      #print Dumper($self->{RESULTHANDLE}->members());

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

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