comp.lang.ada
 help / color / mirror / Atom feed
* Usage of Interfaces with Ada 95
@ 2003-09-26 16:36 Michael Erdmann
  2003-09-26 16:50 ` chris
  2003-09-26 16:55 ` Hyman Rosen
  0 siblings, 2 replies; 43+ messages in thread
From: Michael Erdmann @ 2003-09-26 16:36 UTC (permalink / 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





^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2003-10-01 18:46 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-26 16:36 Usage of Interfaces with Ada 95 Michael Erdmann
2003-09-26 16:50 ` 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

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