comp.lang.ada
 help / color / mirror / Atom feed
From: Marin David Condic <mcondic.nospam@acm.org>
Subject: Re: Ada Streams usage (was Escape Sequences in Strings)
Date: 2000/11/20
Date: 2000-11-20T14:31:49+00:00	[thread overview]
Message-ID: <3A1935B3.8E4A83F7@acm.org> (raw)
In-Reply-To: cgth1to7upmmpmg6m04st606jgumn50j9u@4ax.com

Brian Orpin wrote:

> >    type My_Stream_Type is new Ada.Streams.Root_Stream_Type with record
> >        --
> >        --  This is where you would retain information about I/O buffers,
> >        --  I/O ports, etc. so that Read and Write can know where to
> >        --  retreive or send their data. A simple case might be a big ring
> >        --  buffer with Write attaching to the end and Read pulling stuff
> >        --  off from the beginning. Not really useful, but it makes the
> >        --  point.
> >        --
> >        null ;
> >    end record ;
>
> Can't see how information on the IO buffers goes in here.
>

Suppose for example that you are supporting a MilStd1553 communications device.
Or maybe several of them. There's going to be information here about addresses &
subaddresses which you would store in here via some kind of "Initialize"
procedure that is visible from the spec. The 1553 is likely to have one or more
memory mapped buffers from which it reads a chunk of data and spews it down the
wire. Your code needs to know where those buffers are and probably has to
maintain info about which is the next one to be filling, etc. So you would store
the memory addresses here.

Or you might have an application that uses some other hardware or protocol where
you don't want to send every little byte that comes along, but want to save them
up into some bigger chunk. Declare a local buffer (a Stream_Element_Array) of
some sufficient size along with indexes to know where you left off filling it.
When it gets full, you do the sending of the data at that point.

It depends on your application, but that's generally the way I would use the
Root_Stream_Type for a communication application. I've found other uses for it as
well - it can be used as a means of converting data of some type (tagged records
in particular) into a Stream_Element_Array using the Root_Stream_Type as an
intermediary storage location.

Use your imagination and you may come up with more...


>
> >    procedure Read (
> >        Stream  : in out My_Stream_Type ;
> >        Item    :    out Ada.Streams.Stream_Element_Array ;
> >        Last    :    out Ada.Streams.Stream_Element_Offset) is
> >        --
> >        --  This is called automagically from the background as things
> >        --  are being converted by Something'Read.
> >        --
> >    begin
> >        --
> >        --  Normally, you'd do something to access a low-level I/O
> >        --  device or use some other means to get hold of raw bytes
> >        --  from some source at this point in the code. Here we
> >        --  just fill it with zeros as a not too useful example.
> >        --
> >        for X in Item'Range loop
> >            Item (X) := 0 ;
> >        end loop ;
> >        Last    := Item'Last ;
> >    end Read ;
>
> It is the bit about getting the raw bytes that interested me.  I was
> hoping that Streams did a bit more but obviously not.
>

What did you think they should do? Were you under the impression that Streams
could be informed of the source of some raw bytes and that they would connect up
to it with little or no code provided by the programmer? I'm not clear about what
you are saying here.

>
> I just can't believe that someone hasn't done this and made it available.
> It is such a common problem.  Ho Hum I suppose I will need to find the
> time to do it.

Done what and made it available? I'm lost here.

MDC
--
======================================================================
Marin David Condic - Quadrus Corporation - http://www.quadruscorp.com/
Send Replies To: m c o n d i c @ q u a d r u s c o r p . c o m
Visit my web site at:  http://www.mcondic.com/

    "Giving money and power to Government is like giving whiskey
    and car keys to teenage boys."

        --   P. J. O'Rourke
======================================================================






  reply	other threads:[~2000-11-20  0:00 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-15  0:00 Escape Sequences in Strings Jean Cohen
2000-11-15  0:00 ` John English
2000-11-15  0:00   ` Robert Dewar
2000-11-15  0:00     ` Ehud Lamm
2000-11-16  0:00       ` John English
2000-11-16  0:00         ` Tarjei T. Jensen
2000-11-16  0:00           ` Ken Garlington
2000-11-16  0:00             ` Keith Thompson
2000-11-16  0:00             ` Marin David Condic
2000-11-16  0:00         ` Marin David Condic
2000-11-15  0:00 ` Preben Randhol
2000-11-15  0:00 ` Marin David Condic
2000-11-16  0:00   ` Ada Streams usage (was Escape Sequences in Strings) Marc A. Criley
2000-11-16  0:00     ` Marin David Condic
2000-11-16  0:00       ` Ted Dennison
2000-11-16  0:00         ` Marin David Condic
2000-11-16  0:00           ` Ted Dennison
2000-11-16  0:00             ` Marin David Condic
     [not found]     ` <igh81t8b3hdrsc167do6qr0h1joa73c1jr@borpin.co.uk>
2000-11-18  0:00       ` Marin David Condic
2000-11-18  0:00         ` David Kristola
2000-11-19  0:00           ` Marin David Condic
2000-11-19  0:00             ` Marin David Condic
2000-11-20  0:00               ` Brian Orpin
2000-11-20  0:00                 ` Marin David Condic [this message]
2000-11-19  0:00         ` Ted Dennison
2000-11-19  0:00           ` Marin David Condic
2000-11-19  0:00             ` Ted Dennison
2000-11-19  0:00               ` Robert Dewar
2000-11-19  0:00             ` Robert Dewar
2000-11-20  0:00               ` Marin David Condic
2000-11-21  0:00                 ` Robert Dewar
2000-11-20  0:00               ` Randy Brukardt
2000-11-21  0:00                 ` Ted Dennison
2000-11-21  0:00                   ` Randy Brukardt
2000-11-21  1:31                 ` Robert Dewar
2000-11-21  1:33                 ` Robert Dewar
2000-11-21  0:00                   ` Randy Brukardt
2000-11-22  5:00                     ` Robert Dewar
2001-01-12 13:18 ` Escape Sequences in Strings Andrew Hately
2001-01-12 20:03   ` Keith Thompson
2001-01-18  8:29     ` Lao Xiao Hai
2001-01-18 15:22       ` Robert Dewar
2001-01-18 22:43         ` Randy Brukardt
2001-01-21 11:54         ` Dale Stanbrough
2001-01-21 22:35           ` directly accessing DOS screen memory (was: Re: Escape Sequences in Strings) Jeffrey Carter
2001-01-12 19:37 ` Escape Sequences in Strings tmoran
2001-01-13  1:38   ` Robert Dewar
2001-01-13  6:48     ` tmoran
2001-01-13 18:36       ` Robert Dewar
2001-01-16  3:30         ` Examples in Docs, was " peter_richtmyer
2001-01-16  5:42           ` Robert Dewar
2001-01-16 20:44             ` mark_lundquist
2001-01-16 22:43               ` Larry Kilgallen
2001-01-17 15:06                 ` mark_lundquist
2001-01-17  2:25               ` Robert Dewar
2001-01-17 15:28                 ` mark_lundquist
2001-01-17 16:20                 ` Brian Rogoff
2001-01-17 18:04                   ` Wayne Lydecker
2001-01-17 19:23                     ` BSCrawford
2001-01-18  0:15                       ` Jerry Petrey
2001-01-19  0:01                     ` tmoran
2001-01-18  3:44                   ` Robert Dewar
2001-01-18 16:45                     ` Brian Rogoff
2001-01-18 19:53                       ` Robert Dewar
2001-01-18 22:58                         ` Georg Bauhaus
2001-01-19 16:40                           ` Robert Dewar
2001-01-19  7:49                         ` Learning methods Anders Wirzenius
2001-01-19 18:57                         ` Examples in Docs, was Re: Escape Sequences in Strings mark_lundquist
2001-01-21 12:05                         ` Dale Stanbrough
2001-01-21 15:35                           ` Robert Dewar
2001-01-17 22:10                 ` Matthew Woodcraft
2001-01-18  3:52                   ` Robert Dewar
2001-01-16 16:06           ` Examples in Docs Robert C. Leif, Ph.D.
2001-01-16 21:29             ` mark_lundquist
2001-01-18  0:50               ` Randy Brukardt
2001-01-18 16:46                 ` mark_lundquist
2001-01-18 17:24               ` J. David Bryan
2001-01-17  2:43             ` Robert Dewar
2001-01-17 21:17               ` Robert C. Leif, Ph.D.
2001-01-16 20:01           ` Examples in Docs, was Re: Escape Sequences in Strings mark_lundquist
2001-01-17 10:59             ` Peter Richtmyer
2001-01-19 18:55               ` mark_lundquist
2001-01-20 14:24                 ` Robert Dewar
2001-01-20 14:36                   ` Preben Randhol
2001-01-20 15:00                     ` Robert Dewar
2001-01-21 11:24                       ` Preben Randhol
2001-01-22 14:47                         ` Ted Dennison
2001-01-22 20:08                           ` Preben Randhol
2001-01-22 20:14                             ` Preben Randhol
2001-01-20 19:02                   ` Stephen Leake
2001-01-20 19:50                     ` Georg Bauhaus
2001-01-21 11:35                     ` Preben Randhol
2001-01-22 23:58                   ` Mark Lundquist
2001-01-27  1:43                   ` Increasing the readability of Ada was RE: Examples in Docs Robert C. Leif, Ph.D.
replies disabled

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