Schließen von Tabellen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

TBI.pm
sub close {
   my $self = shift;
   $self->{closed} = 1;
   delete $tables{$self->name()}->{handle};
}

sub DESTROY {
   my $self = shift;
   $self->close() unless $self->{closed};
}

*Wenn die Garbage-Collection ein Objekt aufräumen möchte, wird (sofern vorhanden) die Methode DESTROY aufgerufen, die es erlaubt, Aufräumungsarbeiten durchzuführen.
 
*Alternativ ist es auch vorgesehen, eine Tabelle explizit mit close zu schließen.
 
*Wenn eine implizite und eine explizite Schließmöglichkeit parallel existieren, dann muß sichergestellt werden, daß die Aufräumarbeiten nicht doppelt ausgeführt werden. Dies läßt sich gleich in der Basisabstraktion sicherstellen.
 
*Analog zu den Initialisierungs-Sequenzen ist bei close ebenfalls die gesamte Sequenz abzuarbeiten, d.h. alle beteiligten Parteien leisten zuerst ihre eigenen Aufräumarbeiten, um anschließend die entsprechende Methode bei der SUPER-Klasse aufzurufen.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003