comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison<dennison@telepath.com>
Subject: Re: Container reqs
Date: Thu, 18 Oct 2001 16:02:18 GMT
Date: 2001-10-18T16:02:18+00:00	[thread overview]
Message-ID: <e2Dz7.34194$ev2.41640@www.newsranger.com> (raw)
In-Reply-To: 3BCEF4B8.B1AC6965@brighton.ac.uk

In article <3BCEF4B8.B1AC6965@brighton.ac.uk>, John English says...
>
>I do something like this in JEWL. There's a reference-counted tagged
>type in package JEWL (non-generic parent):
>
>  type Reference_Counted_Type is tagged limited
>    record
>      Count : Natural := 1;
>    end record;
>
>  procedure Cleanup (Object : in out Reference_Counted_Type);
>
>  type Reference_Counted_Ptr is access all Reference_Counted_Type'Class;
>
>  type Controlled_Type is new Ada.Finalization.Controlled with
>    record
>      Pointer : Reference_Counted_Ptr;
>    end record;
>
>  procedure Finalize (Object : in out Controlled_Type);
>  procedure Adjust   (Object : in out Controlled_Type);
>
>and then JEWL.Windows (which is generic) uses this Controlled_Type as
>a component (actually *the* component) in all the window types, so that
>all windows are implemented as pointers to reference-counted types.
>The actual object that a particular type of window points to is one
>of a variety of possible derivations which are defined in a private
>child and produced by constructor (factory) functions.

I still don't see how that allows you to declare something in the generic that
can be managed by the controlled object. You can manage the
"reference_counted_type", but if I declare some new type that needs to be
managed in my generic, the only way to get Controlled_Type to manage it is to
derive it from "reference_counted_type". If I do that, I'm back to the situation
where my generic can only be instantiated at the library level.

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html

No trees were killed in the sending of this message. 
However a large number of electrons were terribly inconvenienced.



  reply	other threads:[~2001-10-18 16:02 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-14 20:46 Container reqs Ehud Lamm
2001-10-14 22:00 ` Larry Kilgallen
2001-10-15 20:04   ` Ehud Lamm
2001-10-16 15:19     ` Ted Dennison
2001-10-16 19:17     ` Darren New
2001-10-14 22:52 ` James Rogers
2001-10-15  1:22   ` Darren New
2001-10-15 20:06   ` Ehud Lamm
2001-10-16 18:29     ` Stephen Leake
2001-10-17  5:55     ` Simon Wright
2001-10-15 20:15   ` Ehud Lamm
2001-10-15  6:49 ` Jeffrey Carter
2001-10-16 15:25   ` Ted Dennison
2001-10-17 12:40     ` John English
2001-10-17 13:16       ` Ted Dennison
2001-10-18 15:26         ` John English
2001-10-18 16:02           ` Ted Dennison [this message]
2001-10-17 14:17       ` Ehud Lamm
2001-10-23  8:17         ` John English
2001-10-23 14:23           ` Ehud Lamm
2001-10-23 20:07             ` Stephen Leake
2001-10-23 20:46               ` Ehud Lamm
2001-10-23 20:50               ` Ted Dennison
2001-10-23 21:18                 ` Marin David Condic
2001-10-24  8:30                   ` Ehud Lamm
2001-10-24 14:08                     ` Marin David Condic
2001-10-25 20:10                       ` Ehud Lamm
2001-10-25 21:18                         ` Marin David Condic
2001-10-25 21:25                         ` Marin David Condic
2001-10-23 21:27                 ` Larry Hazel
2001-10-23 22:03                   ` Ehud Lamm
2001-10-15 14:27 ` Ted Dennison
2001-10-15 17:47   ` Darren New
2001-10-15 20:08   ` Ehud Lamm
2001-10-17  6:08     ` Simon Wright
2001-10-18 20:52       ` Ehud Lamm
2001-10-18 22:29         ` Jeffrey Carter
2001-10-19 12:10           ` Georg Bauhaus
2001-10-19 15:36           ` Stephen Leake
2001-10-19 14:53             ` Ehud Lamm
2001-10-20 11:10               ` Simon Wright
2001-10-21 18:17               ` Stephen Leake
2001-10-22 17:02                 ` Ehud Lamm
2001-10-22 17:34                   ` David Botton
2001-10-22 18:02                     ` Ehud Lamm
2001-10-20  2:44             ` Jeffrey Carter
2001-10-21 18:24               ` Stephen Leake
2001-10-23  1:13               ` Stephen Leake
2001-10-23  2:09                 ` Jeffrey Carter
2001-10-23 13:29                   ` Ted Dennison
2001-10-24  2:26                     ` Jeffrey Carter
2001-10-24 13:54                       ` Ted Dennison
2001-10-24 14:02                         ` Lutz Donnerhacke
2001-10-24 14:24                         ` Marin David Condic
2001-10-24 19:01                         ` Stephen Leake
2001-10-25  1:40                         ` Jeffrey Carter
2001-10-15 14:39 ` Lutz Donnerhacke
2001-10-15 15:36   ` Marin David Condic
2001-10-16 18:47     ` Stephen Leake
2001-10-16 19:18       ` Marin David Condic
2001-10-15 20:13   ` Ehud Lamm
2001-10-16  8:14     ` Lutz Donnerhacke
2001-10-16  8:50       ` Ehud Lamm
2001-10-16 10:12         ` Lutz Donnerhacke
2001-10-16  9:45   ` Jean-Marc Bourguet
2001-10-16 13:20     ` Ehud Lamm
2001-10-16 15:34       ` Ted Dennison
2001-10-16 18:49         ` Stephen Leake
2001-10-17  6:02         ` Simon Wright
2001-10-16 17:21     ` Jeffrey Carter
2001-10-16 18:57       ` Ted Dennison
2001-10-16 18:59       ` Stephen Leake
2001-10-16 19:38         ` Marin David Condic
2001-10-16 20:01           ` Larry Kilgallen
2001-10-16 20:19             ` Marin David Condic
2001-10-30  6:53           ` Barry Kelly
2001-10-30 14:53             ` Marin David Condic
2001-10-30 16:14             ` Jean-Marc Bourguet
2001-10-30 16:55               ` Marin David Condic
2001-10-31  6:37                 ` Simon Wright
2001-10-30 17:45             ` Stephen Leake
2001-10-16 22:12         ` Robert*
2001-10-17  7:09       ` Jean-Marc Bourguet
2001-10-17 13:36         ` Ted Dennison
2001-10-17 14:12           ` Jean-Marc Bourguet
2001-10-17 15:15             ` Ted Dennison
2001-10-17 16:32               ` Jean-Marc Bourguet
2001-10-17 16:49                 ` Ted Dennison
2001-10-17 16:55                   ` Ehud Lamm
2001-10-18  7:39                 ` Lutz Donnerhacke
2001-10-18  9:03                   ` Jean-Marc Bourguet
2001-10-18 17:25                     ` Jeffrey Carter
2001-10-18 20:09                       ` Lutz Donnerhacke
2001-10-18 22:35                         ` Jeffrey Carter
2001-10-19  8:44                           ` Lutz Donnerhacke
2001-10-20 11:14                             ` Simon Wright
2001-10-21 16:37                               ` Paul Duquennoy
2001-10-17 17:18         ` Jeffrey Carter
2001-10-18  8:59           ` Jean-Marc Bourguet
2001-10-18 19:42         ` Simon Wright
2001-10-18 20:55           ` Ehud Lamm
2001-10-22  6:46       ` Kenneth Almquist
2001-10-22  8:04         ` mike
2001-10-22  8:42           ` Lutz Donnerhacke
2001-10-22 16:30         ` Jeffrey Carter
2001-10-22 17:14           ` Ehud Lamm
2001-10-16 11:37 ` Jean-Marc Bourguet
2001-10-16 13:23   ` Ehud Lamm
2001-10-16 13:39     ` Jean-Marc Bourguet
2001-10-16 15:36     ` Vincent Marciante
2001-10-16 16:15       ` Pat Rogers
2001-10-16 19:04     ` Stephen Leake
2001-10-16 15:53   ` Ted Dennison
2001-10-16 15:58     ` Jean-Marc Bourguet
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox