/[wait]/branches/unido/lib/WAIT/Table/Handle.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /branches/unido/lib/WAIT/Table/Handle.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 106 - (hide annotations)
Tue Jul 13 12:22:09 2004 UTC (19 years, 10 months ago) by dpavlin
File size: 1221 byte(s)
Changes made by Andreas J. Koenig <andreas.koenig(at)anima.de> for Unido project

1 dpavlin 106 # -*- Mode: Perl -*-
2     # $Basename: Handle.pm $
3     # $Revision: 1.1 $
4     # Author : Ulrich Pfeifer
5     # Created On : Mon May 31 15:53:55 1999
6     # Last Modified By: Ulrich Pfeifer
7     # Last Modified On: Mon May 31 15:54:22 1999
8     # Language : Perl
9    
10     package WAIT::Table::Handle;
11     use Carp;
12     use strict;
13    
14     sub new {
15     my ($type, $database, $name) = @_;
16     bless [$database, $name], $type;
17     }
18    
19     sub database {shift->[0]}
20    
21     sub name {shift->[1]}
22    
23     sub table {
24     my $self = shift;
25     $self->database->{tables}->{$self->name};
26     }
27    
28     sub DESTROY {}
29    
30     sub AUTOLOAD {
31     my $func = $WAIT::Table::Handle::AUTOLOAD;
32     $func =~ s/.*:://;
33     my $self = $_[0];
34     my ($database, $name) = @$self;
35     # warn "database[$database]name[$name]func[$func]\@_[@_]";
36     if (defined $database->{tables}->{$name}) {
37     if ($func eq 'drop') {
38     $database->drop_table(name => $name);
39     undef $_[0];
40     1;
41     } else {
42     shift @_;
43     if ($func eq 'open') {
44     $database->{tables}->{$name}->$func(mode => $database->{mode}, @_);
45     } else {
46     $database->{tables}->{$name}->$func(@_);
47     }
48     }
49     } else {
50     croak("Invalid handle.
51     DEBUG: func[$func] self[$self] database[$database]\n");
52     }
53     }
54    
55    
56     1;

  ViewVC Help
Powered by ViewVC 1.1.26