comp.lang.ada
 help / color / mirror / Atom feed
From: Alexander Korolev <antonovkablog@gmail.com>
Subject: Re: Stream_Element_Array
Date: Wed, 14 Sep 2011 14:29:41 -0700 (PDT)
Date: 2011-09-14T14:29:41-07:00	[thread overview]
Message-ID: <01c12338-e9f8-49ab-863d-c8282be3875e@g31g2000yqh.googlegroups.com> (raw)
In-Reply-To: ju5wgjs11mug$.4ohgki30bvpf.dlg@40tude.net

On Sep 15, 12:13 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:
> On Wed, 14 Sep 2011 10:16:09 -0700 (PDT), Alexander Korolev wrote:
> > I've been advised and that worked out for many in few cases to use
> > Volatile_Streams.Memory_Resident_Stream.
>
> This is not what you need. It is a stream backed by the memory. I also
> implemented such, backed by a String object, that is when you write, you do
> into the string, when you read then from the string.
>
> In your case the other end is not the memory but the wire. This is what
> Serial_Port of GNAT.Serial_Communications is, an implementation of stream.
>
> So you simply derive or aggregate a new type from/into it, place there an
> output buffer of Stream_Element_Array of the maximal message size, and
> Stream_Element_Array for the input, usually just one element length.
>
> The pattern is:
>
>    Root_Stream_Type -- abstract stream
>      |
>    Serial_Port -- concrete stream, transport layer
>      |
>    your type -- specific protocol implementation
>
> --
> Regards,
> Dmitry A. Kazakovhttp://www.dmitry-kazakov.de

"It is a stream backed by the memory"
yes

"In your case the other end is not the memory but the wire"
I am not sure I undestand you complitly. What's wrong, at least for
now, to build \ construct in memory the Buffer (Stream_Element_Array)
with full command (according the format I posted) inside and after
that send it over any stream (including GNAT.Serial, Socket etc)
derived from Root_Stream_Type. Basicly, I don't need even a Type -
I am using it just get Unsigned_16 serialized into Stream Elements.
That's it. It's kind of hadcrafting. I also can override My_Type'Write
attribute and send to Serial port ... Your approach is to create a new
stream actully, which will take into account the PROTOCOL specifics.
Absolutly agree with that. But what is wrong with manual approach I am
implementing.



  reply	other threads:[~2011-09-14 21:31 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-14  3:13 Stream_Element_Array Alexander Korolev
2011-09-14  5:29 ` Stream_Element_Array Per Sandberg
2011-09-14  8:34   ` Stream_Element_Array Alexander Korolev
2011-09-14  8:31 ` Stream_Element_Array Simon Wright
2011-09-14  9:09   ` Stream_Element_Array Alexander Korolev
2011-09-14  9:40     ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14  9:41       ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14 10:18         ` Stream_Element_Array Simon Wright
2011-09-14 12:42           ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14 16:20             ` Stream_Element_Array Simon Wright
2011-09-14 19:53               ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14 10:53       ` Stream_Element_Array Simon Wright
2011-09-14 12:48         ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14 14:48           ` Stream_Element_Array Alexander Korolev
2011-09-14 15:08             ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14 17:16               ` Stream_Element_Array Alexander Korolev
2011-09-14 20:13                 ` Stream_Element_Array Dmitry A. Kazakov
2011-09-14 21:29                   ` Alexander Korolev [this message]
2011-09-15  8:20                     ` Stream_Element_Array Dmitry A. Kazakov
2011-09-15 18:58                       ` Stream_Element_Array Alexander Korolev
2011-09-15 20:48                         ` Stream_Element_Array Dmitry A. Kazakov
2011-09-16  0:20                           ` Stream_Element_Array Alexander Korolev
2011-09-15 19:15                       ` Stream_Element_Array Alexander Korolev
2011-09-15 20:11                         ` Stream_Element_Array Simon Wright
2011-09-15 20:34                           ` Stream_Element_Array Alexander Korolev
2011-09-15 21:42                             ` Stream_Element_Array Simon Wright
2011-09-15 21:50                               ` Stream_Element_Array Simon Wright
2011-09-16  0:01                                 ` Stream_Element_Array Alexander Korolev
2011-09-16  0:18                               ` Stream_Element_Array Adam Beneschan
2011-09-16  7:22                                 ` Stream_Element_Array Dmitry A. Kazakov
2011-09-16 10:21                                   ` Stream_Element_Array Simon Wright
2011-09-16 12:13                                     ` Stream_Element_Array Dmitry A. Kazakov
2011-09-16 17:20                                       ` Stream_Element_Array Simon Wright
2011-09-16 19:32                                         ` Stream_Element_Array Dmitry A. Kazakov
2011-09-16 22:18                                           ` Stream_Element_Array Simon Wright
2011-09-17  8:18                                             ` Stream_Element_Array Dmitry A. Kazakov
2011-09-19 23:22                                   ` Stream_Element_Array Randy Brukardt
2011-09-15 21:28                           ` Stream_Element_Array Alexander Korolev
2011-09-15  2:33                   ` Stream_Element_Array Alexander Korolev
2011-09-19 23:11           ` Stream_Element_Array Randy Brukardt
2011-09-14 12:19 ` Stream_Element_Array Gautier write-only
2011-09-16 11:17 ` Stream_Element_Array anon
replies disabled

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