comp.lang.ada
 help / color / mirror / Atom feed
From: tmoran@acm.org
Subject: Re: Looping over a tagged record?
Date: Fri, 22 Jun 2001 18:24:40 GMT
Date: 2001-06-22T18:24:40+00:00	[thread overview]
Message-ID: <I3MY6.114375$%i7.81482837@news1.rdc1.sfba.home.com> (raw)
In-Reply-To: Xns90C86B56DE86charleshixsonearthli@207.217.77.23

Note that doing a 'read or 'write of a record makes the compiler
generate code to sequentially visit each component of that record,
calling a 'read/write routine for each.  You get to supply those
'read/write routines if you want - they don't actually have to
do IO at all, but could do something else entirely.  Is that
what you meant by "looping over a [tagged] record"?

>Ada.Streams_IO, however, seems to be a built in method for doing
>most of what I need.  The only problem is that when I'm reading
>the stuff back in I won't be able to use the file tags to tell
>Ada what kind of data I'm reading.  That won't be known at
>compile time.  So I'll need to build the kind of case switch
  You can use 'Class'Read or 'Class'Input to have dispatching on the
particular type at run time.  You don't need to know about all the
possible descendants of a type when you compile your input routine.
You can later create a new descendant with an overriding input
routine to be called for that new type.  If your input data was
externally supplied, you'll of course have to write code to translate
to an Ada tag from however it decides what "type" an object is,
and any time you add a new input possibility you'll have to update
that code to handle it.  But no language, compiler, or computer can
tell what to do with a brand new, unexpected, type-of-object
indicator, until you tell it.  A case statement or the equivalent
is how you tell it, and the case statement will need a new branch
to understand what to do with a new record type.



  reply	other threads:[~2001-06-22 18:24 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-19 20:39 Looping over a tagged record? M R Goodwin
2001-06-19 21:31 ` Pascal Obry
2001-06-19 21:32 ` Pascal Obry
2001-06-19 22:20   ` Samuel T. Harris
2001-06-19 23:45     ` mgoodwinSPAMMY
2001-06-20  1:33 ` Pat Rogers
2001-06-20  3:13   ` Pat Rogers
2001-06-20  2:58 ` DuckE
2001-06-20 13:15 ` Ted Dennison
2001-06-20 15:01   ` M. A. Alves
2001-06-21  2:36     ` DuckE
2001-06-21 10:14       ` M. A. Alves
2001-06-21 13:24         ` Pat Rogers
2001-06-21 17:08     ` Charles Hixson
2001-06-21 18:58       ` tmoran
2001-06-21 23:02         ` Charles Hixson
2001-06-22 19:04           ` B.Gaffney
2001-06-22 20:36             ` Pascal Obry
2001-06-22  2:18       ` DuckE
2001-06-22 17:33         ` Charles Hixson
2001-06-22 18:24           ` tmoran [this message]
2001-09-13  0:29           ` Gnat Windows load error tmoran
2001-09-13 18:15             ` Jerry van Dijk
2001-09-13 23:17               ` tmoran
2001-09-13  3:58           ` Ada web crawler tmoran
2001-11-17 21:50           ` ada.strings.bounded slice errors tmoran
2001-11-18 17:16             ` Florian Weimer
2001-11-18 19:31               ` tmoran
2001-11-19  7:12                 ` Florian Weimer
2002-02-08 20:55           ` How to get a traceback in Gnat 3.14p tmoran
2002-02-08 21:24             ` Pascal Obry
2002-02-08 22:28               ` tmoran
2002-02-11  0:10           ` How to use gnatelim in Gnat 3.14p? tmoran
2002-02-15 17:23           ` does gnatelim work? tmoran
2002-02-15 18:18             ` Stephen Leake
2002-02-15 21:58               ` tmoran
2002-02-18  1:31                 ` Stephen Leake
2002-04-15  3:05           ` Announce: .rc files with Gnat tmoran
2002-04-15 14:48             ` Ted Dennison
2002-05-25  7:06           ` slice'access? tmoran
2002-05-25 16:47             ` slice'access? Robert Dewar
2002-05-25 18:28               ` slice'access? tmoran
2002-05-25 20:20                 ` slice'access? Jeffrey Carter
2002-05-25 23:39                   ` slice'access? tmoran
2002-05-26 14:22                     ` slice'access? Robert Dewar
2002-09-30  1:54           ` 'write of bounded string? tmoran
2002-09-30 16:06             ` Stephen Leake
2002-10-27 23:01           ` phone# etc bdean
2002-10-28  3:04             ` tmoran
2002-11-06  3:14           ` A little Ada app tmoran
2002-11-06 11:37             ` Larry Kilgallen
2002-11-06 15:08             ` Ted Dennison
2002-11-06 18:02               ` tmoran
2001-06-21  3:09 ` Looping over a tagged record? gresset1
replies disabled

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