comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca>
Subject: Re: [OT] Best way to isolate a GUI? (The final concensous?)
Date: Wed, 19 Feb 2003 13:35:12 -0500
Date: 2003-02-19T13:35:12-05:00	[thread overview]
Message-ID: <3E53CE60.1030008@cogeco.ca> (raw)
In-Reply-To: b2vuib$4q4$1@slb9.atl.mindspring.net

Marin David Condic wrote:
> Why would you want to use a variant record when a tagged type solves the
> problem so much more elegantly? I've always found variant records to be a
> pain in the posterior - in particular as noted by Randy that you have to
> define everything in one place. If you wanted to pass back to an app various
> events (or widget data, for that matter) it would seem that a base class of
> some sort of "event" or "message" would be the place to start. You then
> build up from that class the specific events or messages you need in
> separate packages. If something gets added on top that message catalog,
> you're not impacting anything else and the extension doesn't force
> recompilation of the whole world.
> 
> Short of possibly efficiency concerns or representation issues, I just don't
> see much excuse for variant records when we've got tagged types.
> 
> MDC
> --

For the most part Marin, I have conceded the point to Randy. Tagged
records provide one very important advantage, that I consider to
be important: the fact that you can define a simple base type, and
then extend it from separate other package specs as needed. That
feature is very much worth having, IMO.

Tagged records need not be the final answer to all things event wise
however. Doing a case statement on a discriminant of a variant record
is easier than doing a number of "if object in Some'Class then"
tests. Especially if there is a common set of elements and some
variations for the event in question.

So my concession is this:

   1) Use tagged types for event data (with a abstract or bare "base" type).
   2) Extend the event base type in the package specs as required
   3) Callback is defined as receiving some Base'Class argument.
   4) Within the final tagged type, perhaps use variant records to
      distinguish variations of that event.

Basically I guess where I am coming from is that I don't see a tagged
type for "every variation". That is perhaps a point where we'll
all disagree ;-)

-- 
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg




  reply	other threads:[~2003-02-19 18:35 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-16 10:19 [OT] Best way to isolate a GUI? Jano
2003-02-16 14:47 ` Ed Falis
2003-02-16 14:49 ` Victor Porton
2003-02-17 20:52   ` Jano
2003-02-16 16:36 ` Robert C. Leif
2003-02-17  8:44   ` Preben Randhol
2003-02-17 16:22     ` Robert C. Leif
2003-02-17 17:30     ` Jeffrey Carter
2003-02-17 17:54       ` Warren W. Gay VE3WWG
2003-02-17 19:06         ` Randy Brukardt
2003-02-18  3:15           ` Warren W. Gay VE3WWG
2003-02-18 16:14             ` Robert C. Leif
2003-02-18 18:10             ` Randy Brukardt
2003-02-18 21:12               ` Warren W. Gay VE3WWG
2003-02-18 23:20                 ` Randy Brukardt
2003-02-19 18:28                   ` Warren W. Gay VE3WWG
2003-02-20 19:39                     ` Randy Brukardt
2003-02-20 21:34                       ` Warren W. Gay VE3WWG
2003-02-20  7:50                   ` Dale Stanbrough
2003-02-19 12:49                 ` Marin David Condic
2003-02-19 18:35                   ` Warren W. Gay VE3WWG [this message]
2003-02-20 12:40                     ` [OT] Best way to isolate a GUI? (The final concensous?) Marin David Condic
2003-02-20 13:13                       ` Dmitry A. Kazakov
2003-02-20 22:01                       ` Warren W. Gay VE3WWG
2003-02-21  1:25                         ` tmoran
2003-02-21  2:08                         ` Marin David Condic
2003-02-21 17:27                           ` Jeffrey Carter
2003-02-22 14:10                             ` Marin David Condic
2003-02-21 18:02                           ` Warren W. Gay VE3WWG
2003-02-22 14:49                             ` Marin David Condic
2003-02-22 22:50                               ` tmoran
2003-02-23  5:18                               ` Robert C. Leif
2003-02-24 18:06                               ` Warren W. Gay VE3WWG
2003-02-25  1:20                                 ` Robert C. Leif
2003-02-25 17:57                                   ` Warren W. Gay VE3WWG
2003-02-25 12:41                                 ` Marin David Condic
2003-02-25 13:32                                   ` Ole-Hjalmar Kristensen
2003-02-25 17:33                                     ` [OT] Best way to isolate a GUI? (The final fronteer?) Warren W. Gay VE3WWG
2003-02-20  8:26                   ` [OT] Best way to isolate a GUI? tmoran
2003-02-20 12:51                     ` Marin David Condic
2003-02-20 18:47                       ` tmoran
2003-02-17 19:31         ` tmoran
2003-02-18  1:37         ` Jeffrey Carter
2003-02-18  3:39           ` Warren W. Gay VE3WWG
2003-02-18 23:36           ` Randy Brukardt
2003-02-18 13:29         ` Marin David Condic
2003-02-18 18:01           ` Warren W. Gay VE3WWG
2003-02-19 13:06             ` Marin David Condic
2003-02-16 17:25 ` achrist
2003-02-16 21:24 ` Bobby D. Bryant
2003-02-16 21:52 ` David Marceau
2003-02-17  0:57 ` Re; " tmoran
2003-02-17  7:25   ` Jano
2003-02-17 14:09     ` Bobby D. Bryant
2003-02-17 21:12       ` Jano
2003-02-18  7:24         ` Jean-Pierre Rosen
2003-02-18 13:08 ` Marin David Condic
replies disabled

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