home *** CD-ROM | disk | FTP | other *** search
- ------------------------------------------------------------------------------
- -- --
- -- GNAT COMPILER COMPONENTS --
- -- --
- -- A D A . F I N A L I Z A T I O N --
- -- --
- -- S p e c --
- -- --
- -- $Revision: 1.11 $ --
- -- --
- -- Copyright (c) 1992,1993,1994 NYU, All Rights Reserved --
- -- --
- -- GNAT is free software; you can redistribute it and/or modify it under --
- -- terms of the GNU General Public License as published by the Free Soft- --
- -- ware Foundation; either version 2, or (at your option) any later ver- --
- -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
- -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
- -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
- -- for more details. You should have received a copy of the GNU General --
- -- Public License distributed with GNAT; see file COPYING. If not, write --
- -- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. --
- -- --
- ------------------------------------------------------------------------------
-
- with System.Finalization_Implementation;
-
- package Ada.Finalization is
- pragma Preelaborate (Finalization);
-
- type Controlled is abstract tagged private;
-
- procedure Initialize (Object : in out Controlled);
- procedure Adjust (Object : in out Controlled);
- procedure Finalize (Object : in out Controlled);
-
- type Limited_Controlled is abstract tagged limited private;
-
- procedure Initialize (Object : in out Limited_Controlled);
- procedure Finalize (Object : in out Limited_Controlled);
-
- private
-
- type Controlled is abstract new
- System.Finalization_Implementation.Root_Controlled with null record;
-
- type Limited_Controlled is abstract new
- System.Finalization_Implementation.Root_Controlled with null record;
-
- type List_Controller is new Limited_Controlled with record
- F : System.Finalization_Implementation.Finalizable_Ptr;
- end record;
-
- procedure Finalize (Object : in out List_Controller);
- -- Finalize the elements on the list starting at F
-
- end Ada.Finalization;
-