From: Matthew Heaney <matthewjheaney@earthlink.net>
Subject: Re: Idiom for a class and an object in Ada
Date: Tue, 19 Oct 2004 03:28:19 GMT
Date: 2004-10-19T03:28:19+00:00 [thread overview]
Message-ID: <u4qkrtgn2.fsf@earthlink.net> (raw)
In-Reply-To: FH_cd.575$KJ6.64@newsread1.news.pas.earthlink.net
Jeffrey Carter <spam@spam.com> writes:
> Marius Amado Alves wrote:
>
> > generic
> > Line : Number;
> > package AD_Converter is
> > function OK return Boolean;
> > function Get return Value;
> > end;
> > package Heat is new AD_Converter (123);
> > package Noise is new AD_Converter (456);
> > package Wind is new AD_Converter (789);
> > -- You can't get more "static" than that!
>
> Or simple. Or Ada-like. The other suggestions look too much like C++
> for my taste.
Too much code bloat. There's no reason AD_Converter needs to be a
generic, if the objects of that type are known apriori:
package AD_Converters is
pragma Elaborate_Body;
type AD_Converter (<>) is limited private;
function OK (Converter : AD_Converter) return Boolean;
function Get (Converter : AD_Converter) return Value;
function Heat return AD_Converter;
function Noise return AD_Converter;
function Wind return AD_Converter;
private
type AD_Converter (Line : Number) is limited record ...;
end AD_Converters;
package body AD_Converters is
...
Heat_ADC : AD_Conveter (123);
Noise_ADC : AD_Converter (456);
Wind_ADC : AD_Converter (789);
function Heat return AD_Converter is
begin
return Heat_ADC;
end;
function Noise return AD_Converter is
begin
return Noise_ADC;
end;
function Wind return AD_Converter is
begin
return Wind_ADC;
end;
end AD_Converters;
Alternatively, you could declare the objects each in their own private package:
function AD_Converters.Heat return AD_Converter;
private package AD_Converters.Heat_AD_Converters is
Heat_AD_Converter : AD_Converter (123);
... -- whatever else
end;
with AD_Converters.Heat_AD_Converters;
function AD_Converters.Heat return AD_Converter is
begin
return AD_Converters.Heat_AD_Converter;
end;
This would be useful if each AD_Converter object had distinct library
dependencies. (Although it might not matter that much anyway, since
such dependencies would have been limited to the body.)
next prev parent reply other threads:[~2004-10-19 3:28 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-18 11:47 Idiom for a class and an object in Ada Marin David Condic
2004-10-18 12:14 ` Martin Krischik
2004-10-18 19:40 ` Matthew Heaney
2004-10-19 12:59 ` Marin David Condic
2004-10-19 14:46 ` Martin Dowie
2004-10-19 15:55 ` Matthew Heaney
2004-10-19 18:31 ` Martin Dowie
2004-10-19 15:52 ` Matthew Heaney
2004-10-18 12:26 ` Marius Amado Alves
2004-10-19 2:09 ` Jeffrey Carter
2004-10-19 3:28 ` Matthew Heaney [this message]
2004-10-19 12:53 ` Marin David Condic
2004-10-19 14:44 ` Matthew Heaney
2004-10-19 15:01 ` Dmitry A. Kazakov
2004-10-19 15:40 ` Matthew Heaney
2004-10-20 7:58 ` Dmitry A. Kazakov
2004-10-20 12:31 ` Marin David Condic
2004-10-20 13:53 ` Dmitry A. Kazakov
2004-10-20 15:23 ` Matthew Heaney
2004-10-21 12:24 ` Marin David Condic
2004-10-21 17:15 ` Matthew Heaney
2004-10-20 5:39 ` Simon Wright
2004-10-20 7:24 ` Matthew Heaney
2004-10-20 8:39 ` Dmitry A. Kazakov
2004-10-21 1:36 ` Jeffrey Carter
2004-10-21 1:46 ` Matthew Heaney
2004-10-21 7:51 ` Dmitry A. Kazakov
2004-10-21 12:45 ` Matthew Heaney
2004-10-21 14:11 ` Dmitry A. Kazakov
2004-10-22 1:04 ` Jeffrey Carter
2004-10-22 1:36 ` Matthew Heaney
2004-10-21 19:31 ` Kevin Cline
2004-10-21 22:02 ` Matthew Heaney
2004-10-22 0:10 ` Matthew Heaney
2004-10-21 8:25 ` Martin Dowie
2004-10-20 17:04 ` Matthew Heaney
2004-10-20 19:37 ` Simon Wright
2004-10-20 20:04 ` Matthew Heaney
2004-10-22 5:37 ` Simon Wright
2004-10-20 1:10 ` Jeffrey Carter
2004-10-20 7:04 ` Matthew Heaney
2004-10-20 12:42 ` Marin David Condic
2004-10-20 12:55 ` Matthew Heaney
2004-10-20 15:27 ` Matthew Heaney
2004-10-21 1:36 ` Matthew Heaney
2004-10-19 12:38 ` Marin David Condic
2004-10-18 16:59 ` Matthew Heaney
2004-10-18 18:02 ` Martin Dowie
2004-10-19 13:06 ` Marin David Condic
2004-10-19 14:51 ` Martin Dowie
2004-10-20 16:20 ` Michael Paus
2004-10-20 17:15 ` Matthew Heaney
2004-10-20 17:55 ` Michael Paus
2004-10-21 12:33 ` Marin David Condic
-- strict thread matches above, loose matches on Subject: below --
2004-10-21 13:59 Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox