comp.lang.ada
 help / color / mirror / Atom feed
From: Michael Erdmann <michael.erdmann@snafu.de>
Subject: Usage of Interfaces with Ada 95
Date: Fri, 26 Sep 2003 18:36:31 +0200
Date: 2003-09-26T18:36:31+02:00	[thread overview]
Message-ID: <fh6e41-vfo.ln1@boavista.snafu.de> (raw)

Dear all,

i like to provide a package of elementary interfaces providing some 
basic concepts on which a application is build, for example a
so called Enumeration type

generic
   type Data_Type is private;

package Interface.Enumeration is

   type Object is abstract tagged null record;

   function HasMoreElements(
      This : in Object ) return Boolean is abstract;

   procedure Next(
      This   : in out Object;
      Result : out Data_Type) is abstract;

end Interface.Enumeration;

because Ada does not provide an elementary object as e.g. java
this package has to be provided as an generic making the use 
of the package a little bit complicated.

.....
  type Enumerator is private;
.....
  procedure Next(
     This   : in out Enumerator;
     Result : out  Data_Type );
.....

private
  package Reader is new Interface.Enumeration( Data_Type );

  type Enumerator is new Reader.Object with record
          Next : Element_Access := null;
       end record;


The whole thing becomes more and more complicated for other
concepts e.g. a Dictionary which involves two types.

I am realy wondering if there is a better (simpler) way of
providing such a concept library?


Regards
   M.Erdmann





             reply	other threads:[~2003-09-26 16:36 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-26 16:36 Michael Erdmann [this message]
2003-09-26 16:50 ` Usage of Interfaces with Ada 95 chris
2003-09-26 16:55 ` Hyman Rosen
2003-09-26 19:10   ` Michael Erdmann
2003-09-26 20:37     ` Hyman Rosen
2003-09-27 15:05       ` Michael Erdmann
2003-09-28  2:11         ` Matthew Heaney
2003-09-29  2:25         ` George Shapovalov
2003-09-28  2:14   ` Matthew Heaney
2003-09-28  8:28     ` Michael Erdmann
2003-09-28 14:33       ` Matthew Heaney
2003-09-28 15:09         ` Michael Erdmann
2003-09-28 21:50           ` Matthew Heaney
2003-09-30  4:57             ` Michael Erdmann
2003-09-30 10:02               ` Mário Amado Alves
2003-09-30 12:31               ` Matthew Heaney
2003-09-30 19:58                 ` Michael Erdmann
2003-09-28 17:10         ` Simon Wright
2003-09-28 21:52           ` Matthew Heaney
2003-09-28 21:58           ` Matthew Heaney
2003-09-29 19:37             ` Georg Bauhaus
2003-09-29 19:45               ` Georg Bauhaus
2003-09-30  7:10               ` Preben Randhol
2003-09-29 20:11             ` Simon Wright
2003-09-29 22:56               ` Matthew Heaney
2003-09-30 14:53                 ` Matthew Heaney
2003-09-30 16:13                   ` Preben Randhol
2003-09-29 13:49           ` Matthew Heaney
2003-09-28 18:22       ` Robert I. Eachus
2003-09-29  3:02         ` Hyman Rosen
2003-09-30  3:11           ` Robert I. Eachus
2003-09-30 13:38             ` Hyman Rosen
2003-09-30 21:46               ` Robert I. Eachus
2003-09-30 22:10                 ` Hyman Rosen
2003-10-01  2:30                   ` Robert I. Eachus
2003-10-01  2:41                   ` Robert I. Eachus
2003-10-01 13:21                     ` Hyman Rosen
2003-10-01 17:01                       ` Robert I. Eachus
2003-10-01 18:46                       ` Matthew Heaney
2003-09-29 14:52       ` Stephen Leake
2003-09-29 23:00         ` Matthew Heaney
2003-09-30 12:49           ` Marin David Condic
2003-09-30 23:48             ` Matthew Heaney
replies disabled

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