Schließen von Tabellen

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

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

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

*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, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000