Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

My mother is a fish. -- William Faulkner


devel / comp.lang.ada / In memory Stream

SubjectAuthor
* In memory StreamDrPi
+- Re: In memory StreamJ-P. Rosen
+- Re: In memory StreamDmitry A. Kazakov
+- Re: In memory StreamPascal Obry
+- Re: In memory StreamSimon Wright
+* Re: In memory StreamLawrence D'Oliveiro
|`* Re: In memory StreamDmitry A. Kazakov
| `* Re: In memory StreamLawrence D'Oliveiro
|  `- Re: In memory StreamDmitry A. Kazakov
`* Re: In memory StreamDrPi
 +* Re: In memory StreamJ-P. Rosen
 |+* Re: In memory StreamDrPi
 ||+- Re: In memory StreamJ-P. Rosen
 ||`- Re: In memory StreamLawrence D'Oliveiro
 |`- Re: In memory StreamDmitry A. Kazakov
 +* Re: In memory StreamDmitry A. Kazakov
 |+- Re: In memory StreamDrPi
 |`* Re: In memory StreamSimon Wright
 | `* Re: In memory StreamDmitry A. Kazakov
 |  `* Re: In memory StreamSimon Wright
 |   `* Re: In memory StreamDmitry A. Kazakov
 |    `* Re: In memory StreamLawrence D'Oliveiro
 |     `* Re: In memory StreamDmitry A. Kazakov
 |      `* Re: In memory StreamLawrence D'Oliveiro
 |       `* Re: In memory StreamDmitry A. Kazakov
 |        `* Re: In memory StreamLawrence D'Oliveiro
 |         `* Re: In memory StreamDmitry A. Kazakov
 |          `* Re: In memory StreamLawrence D'Oliveiro
 |           `* Re: In memory StreamDmitry A. Kazakov
 |            `* Re: In memory StreamLawrence D'Oliveiro
 |             `* Re: In memory StreamDmitry A. Kazakov
 |              `* Re: In memory StreamLawrence D'Oliveiro
 |               `* Re: In memory StreamDmitry A. Kazakov
 |                `* Re: In memory StreamLawrence D'Oliveiro
 |                 `* Re: In memory StreamNioclásán Caileán Glostéir
 |                  `- Re: In memory StreamLawrence D'Oliveiro
 `* Re: In memory StreamLawrence D'Oliveiro
  +* Re: In memory StreamDmitry A. Kazakov
  |`* Re: In memory StreamLawrence D'Oliveiro
  | +* Re: In memory StreamDmitry A. Kazakov
  | |`* Re: In memory StreamLawrence D'Oliveiro
  | | `* Re: In memory StreamDmitry A. Kazakov
  | |  `- Re: In memory StreamLawrence D'Oliveiro
  | `* Re: In memory StreamBjörn Lundin
  |  `* Re: In memory StreamDmitry A. Kazakov
  |   `* Re: In memory StreamLawrence D'Oliveiro
  |    `* Re: In memory StreamKevin Chadwick
  |     `* Re: In memory StreamLawrence D'Oliveiro
  |      `* Re: In memory StreamKevin Chadwick
  |       `* Re: In memory Stream"Pól Niocláſ Caileán Gloſtéi
  |        `- Re: In memory StreamChris Townley
  `* Re: In memory StreamBjörn Lundin
   `* Re: In memory StreamLawrence D'Oliveiro
    `* Re: In memory StreamBjörn Lundin
     `- Re: In memory StreamChris Townley

Pages:123
In memory Stream

<uqnajr$svt$1@rasp.pasdenom.info>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10423&group=comp.lang.ada#10423

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!paganini.bofh.team!pasdenom.info!.POSTED.2a01:e0a:472:70f0:f159:22b2:3571:bfc2!not-for-mail
From: 314@drpi.fr (DrPi)
Newsgroups: comp.lang.ada
Subject: In memory Stream
Date: Fri, 16 Feb 2024 10:41:12 +0100
Organization: <http://pasdenom.info/news.html>
Message-ID: <uqnajr$svt$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 16 Feb 2024 09:41:15 -0000 (UTC)
Injection-Info: rasp.pasdenom.info; posting-account="314@usenet"; posting-host="2a01:e0a:472:70f0:f159:22b2:3571:bfc2";
logging-data="29693"; mail-complaints-to="abuse@pasdenom.info"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:2pmQktPoqJiQNiS5F4Pik5zekKM= sha256:QXt4ZODCnanvopi8TeSyT+Q2MMTA6uiUeKMugHEZcMc=
sha1:H8utEzt4rVWkWYYSSHVaOMpK2fk= sha256:v++PNMUYrm443amk/HsR2ME999AfUQ6R3+aB61+LMAg=
Content-Language: fr, en-US
 by: DrPi - Fri, 16 Feb 2024 09:41 UTC

Hi,

I want to transfert some data between applications through a memory buffer.
The buffer transfert between applications is under control.
My problem is with the buffer content.
I though I'll use a Stream writing/reading in/from the memory buffer.
How can I achieve this ? I've found no example doing this.
Note : I use Ada 2012.

Nicolas

Re: In memory Stream

<uqne3g$3qi4h$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10424&group=comp.lang.ada#10424

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: rosen@adalog.fr (J-P. Rosen)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Fri, 16 Feb 2024 11:40:54 +0100
Organization: Adalog
Lines: 21
Message-ID: <uqne3g$3qi4h$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 16 Feb 2024 10:40:48 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="97d75b29b4949261ba48b327b3589f5f";
logging-data="4016273"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181jX49JqaDcl3OgrRa+kls"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:fztuSuLByN9Ic6Spax6S0HPI1Ww=
Content-Language: en-US, fr
In-Reply-To: <uqnajr$svt$1@rasp.pasdenom.info>
 by: J-P. Rosen - Fri, 16 Feb 2024 10:40 UTC

Le 16/02/2024 à 10:41, DrPi a écrit :
> Hi,
>
> I want to transfert some data between applications through a memory buffer.
> The buffer transfert between applications is under control.
> My problem is with the buffer content.
> I though I'll use a Stream writing/reading in/from the memory buffer.
> How can I achieve this ? I've found no example doing this.
> Note : I use Ada 2012.
>
I don't know if this is what you want, but at least it is an example of
using streams...
Package Storage_Streams, from Adalog's components page:
https://adalog.fr/en/components.html#Storage_Stream

--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
https://www.adalog.fr https://www.adacontrol.fr

Re: In memory Stream

<uqnl3r$3rpc9$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10425&group=comp.lang.ada#10425

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Fri, 16 Feb 2024 13:40:27 +0100
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <uqnl3r$3rpc9$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 16 Feb 2024 12:40:27 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="6264116c0b5c21303034903445216bdb";
logging-data="4056457"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19PChFICroo6zzUET36UMSx04/QNqR4yJ8="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:LpA7EKXixQ14XUA9miJQ6FkcQ3Q=
In-Reply-To: <uqnajr$svt$1@rasp.pasdenom.info>
Content-Language: en-US
 by: Dmitry A. Kazakov - Fri, 16 Feb 2024 12:40 UTC

On 2024-02-16 10:41, DrPi wrote:

> I want to transfert some data between applications through a memory buffer.
> The buffer transfert between applications is under control.
> My problem is with the buffer content.
> I though I'll use a Stream writing/reading in/from the memory buffer.
> How can I achieve this ? I've found no example doing this.

It of course depends on the target operating system. You need to create
a shared region or memory mapped file etc. You also need system-wide
events to signal the stream ends empty or full.

Simple Components has an implementation interprocess streams for usual
suspects:

http://www.dmitry-kazakov.de/ada/components.htm#12.7

> Note : I use Ada 2012.

No problem, it is kept Ada 95 compatible.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<9a664a92d930c05ee5f910fc8836bd963e0bc63b.camel@obry.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10426&group=comp.lang.ada#10426

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: pascal@obry.net (Pascal Obry)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Fri, 16 Feb 2024 13:49:54 +0100
Organization: Home - http://www.obry.net
Lines: 20
Message-ID: <9a664a92d930c05ee5f910fc8836bd963e0bc63b.camel@obry.net>
References: <uqnajr$svt$1@rasp.pasdenom.info>
Reply-To: pascal@obry.net
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Injection-Info: dont-email.me; posting-host="232af14347eeb4fc84a667189289ad7d";
logging-data="4037114"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Gilufds0ALRRgab47ZkGk3ADqDDBOhTI="
User-Agent: Evolution 3.50.3-1
Cancel-Lock: sha1:hi8VTecEThquAcxj6CG/RhzaM4k=
Autocrypt: addr=pascal@obry.net; prefer-encrypt=mutual;
keydata=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
In-Reply-To: <uqnajr$svt$1@rasp.pasdenom.info>
 by: Pascal Obry - Fri, 16 Feb 2024 12:49 UTC

Hi,

AWS comes with a memory stream implementation.

https://github.com/AdaCore/aws/blob/master/include/memory_streams.ads

You may want to have a look here.

Have a nice day,

--
  Pascal Obry /  Magny Les Hameaux (78)

  The best way to travel is by means of imagination

  http://photos.obry.net

  gpg --keyserver keys.gnupg.net --recv-key F949BD3B

Re: In memory Stream

<ly7cj4kvq9.fsf@pushface.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10428&group=comp.lang.ada#10428

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: simon@pushface.org (Simon Wright)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Fri, 16 Feb 2024 20:19:42 +0000
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <ly7cj4kvq9.fsf@pushface.org>
References: <uqnajr$svt$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="79783ed61c67bd8801b30e08ff82d57b";
logging-data="23925"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19tv6ATmhaQwtbwfjsWlX3j/J5Y+7RrYO4="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin)
Cancel-Lock: sha1:lstWWCosEaMZxcFdKprE+E60T6Y=
sha1:FjLf4R37/N6Krp4CisCqZnhHIPo=
 by: Simon Wright - Fri, 16 Feb 2024 20:19 UTC

DrPi <314@drpi.fr> writes:

> Hi,
>
> I want to transfert some data between applications through a memory buffer.
> The buffer transfert between applications is under control.
> My problem is with the buffer content.
> I though I'll use a Stream writing/reading in/from the memory
> buffer. How can I achieve this ? I've found no example doing this.
> Note : I use Ada 2012.
>
> Nicolas

A spec and body for an implementation I've had since 2008:

https://github.com/simonjwright/coldframe/blob/alire/src/common/coldframe-memory_streams.ads
https://github.com/simonjwright/coldframe/blob/alire/src/common/coldframe-memory_streams.adb

Re: In memory Stream

<uqolir$1ha3$5@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10429&group=comp.lang.ada#10429

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!rocksolid2!news.neodome.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Fri, 16 Feb 2024 21:54:36 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <uqolir$1ha3$5@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 16 Feb 2024 21:54:36 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="fe3e14ae0e4b82a387ee5a4e24f95846";
logging-data="50499"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19WGji0Y+/ffBRTAlZwl2DB"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:kDxLz5YMg4gMQgrVhdArdLeSqhY=
 by: Lawrence D'Oliv - Fri, 16 Feb 2024 21:54 UTC

On Fri, 16 Feb 2024 10:41:12 +0100, DrPi wrote:

> I though I'll use a Stream writing/reading in/from the memory buffer.

Wouldn’t be simplest to let the OS manage the buffering for you?

<https://manpages.debian.org/7/pipe.en.html>

Re: In memory Stream

<uqptmp$bba0$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10437&group=comp.lang.ada#10437

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 10:19:22 +0100
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <uqptmp$bba0$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info> <uqolir$1ha3$5@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 09:19:21 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="662d3d0c8c5c8e50d9cee14792db885b";
logging-data="372032"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+xrVpxZD9z+mHVGHEpayAVcbOBL4WFAYU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:2e64LFPrjm5IJxrx8+LUHE8S84w=
Content-Language: en-US
In-Reply-To: <uqolir$1ha3$5@dont-email.me>
 by: Dmitry A. Kazakov - Sat, 17 Feb 2024 09:19 UTC

On 2024-02-16 22:54, Lawrence D'Oliveiro wrote:
> On Fri, 16 Feb 2024 10:41:12 +0100, DrPi wrote:
>
>> I though I'll use a Stream writing/reading in/from the memory buffer.
>
> Wouldn’t be simplest to let the OS manage the buffering for you?
>
> <https://manpages.debian.org/7/pipe.en.html>

That would make applications OS-dependent.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<uqqcpf$orp$1@rasp.pasdenom.info>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10438&group=comp.lang.ada#10438

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.niel.me!pasdenom.info!.POSTED.2a01:e0a:472:70f0:9dc:978a:d921:8ff3!not-for-mail
From: 314@drpi.fr (DrPi)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 14:36:46 +0100
Organization: <http://pasdenom.info/news.html>
Message-ID: <uqqcpf$orp$1@rasp.pasdenom.info>
References: <uqnajr$svt$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 13:36:47 -0000 (UTC)
Injection-Info: rasp.pasdenom.info; posting-account="314@usenet"; posting-host="2a01:e0a:472:70f0:9dc:978a:d921:8ff3";
logging-data="25465"; mail-complaints-to="abuse@pasdenom.info"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:AHZgH+sccB08RseFkS7ERvN67EY= sha256:rhqpQlCKZvLdGWoofus8Nd9zdD+cM6DbpDpGTZPOCKc=
sha1:LQv2dbrXyz7l+ciJrVNcS8SBLeM= sha256:aW/0yqGPtovVVV3zJz22hn5Q2b7BubvCnnpnwHW9KD8=
Content-Language: fr, en-US
In-Reply-To: <uqnajr$svt$1@rasp.pasdenom.info>
 by: DrPi - Sat, 17 Feb 2024 13:36 UTC

Le 16/02/2024 à 10:41, DrPi a écrit :
> I want to transfert some data between applications through a memory buffer.
> The buffer transfert between applications is under control.
> My problem is with the buffer content.
> I though I'll use a Stream writing/reading in/from the memory buffer.
> How can I achieve this ? I've found no example doing this.
> Note : I use Ada 2012.

Thanks all for your answers.

Concerning the OS and the buffer transfert mechanism, as I said, this is
under control. I use Windows and the WM_COPYDATA message.

My usage is a bit special. The writing process writes a bunch of data in
a memory buffer then requests this buffer to be transferred to another
process by way of WM_COPYDATA. The receiving process reads the data from
the "new" memory buffer. I say "new" since the address is different from
the one used in the writing process (of course it can not be the same).

The library Jean-Pierre pointed me to perfectly matches this usage.
Light and easy to use. Thanks.
One enhancement I see is to manage the buffer size to avoid buffer
overflow (or did I missed something ?).

Thanks again to everybody.

Nicolas

Re: In memory Stream

<uqqfn4$eo0r$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10439&group=comp.lang.ada#10439

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: rosen@adalog.fr (J-P. Rosen)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 15:26:45 +0100
Organization: Adalog
Lines: 19
Message-ID: <uqqfn4$eo0r$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 14:26:44 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1d8e63bd7ad1c4d3131a39d072e680eb";
logging-data="483355"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+wWtyKWHvjuVP/ylZaEZfN"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:nSipcjwdkFFIhcujMuToP2wFFLE=
In-Reply-To: <uqqcpf$orp$1@rasp.pasdenom.info>
Content-Language: en-US, fr
 by: J-P. Rosen - Sat, 17 Feb 2024 14:26 UTC

Le 17/02/2024 à 14:36, DrPi a écrit :
> The library Jean-Pierre pointed me to perfectly matches this usage.
Light and easy to use. Thanks.
:-)

> One enhancement I see is to manage the buffer size to avoid buffer
overflow (or did I missed something ?).

I don't see what you mean here... On the memory side, we are
reading/writing bytes from memory, there is no notion of overflow. And
the number of bytes processed by Read/Write is given by the size of
Item, so no overflow either...

--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
https://www.adalog.fr https://www.adacontrol.fr

Re: In memory Stream

<uqqfr4$eokb$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10440&group=comp.lang.ada#10440

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 15:28:54 +0100
Organization: A noiseless patient Spider
Lines: 49
Message-ID: <uqqfr4$eokb$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 17 Feb 2024 14:28:52 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="662d3d0c8c5c8e50d9cee14792db885b";
logging-data="483979"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19zCgUifEoytaLbXZfoRL5lqxgx66Ct5Sc="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ysM8FgYCO/zUpz3/7ajdx9XFooM=
Content-Language: en-US
In-Reply-To: <uqqcpf$orp$1@rasp.pasdenom.info>
 by: Dmitry A. Kazakov - Sat, 17 Feb 2024 14:28 UTC

On 2024-02-17 14:36, DrPi wrote:

> Concerning the OS and the buffer transfert mechanism, as I said, this is
> under control. I use Windows and the WM_COPYDATA message.
>
> My usage is a bit special. The writing process writes a bunch of data in
> a memory buffer then requests this buffer to be transferred to another
> process by way of WM_COPYDATA. The receiving process reads the data from
> the "new" memory buffer. I say "new" since the address is different from
> the one used in the writing process (of course it can not be the same).

You ask Windows to copy a chunk of memory from one process space into
another, so yes it is physically different memory. Different or same
address tells nothing because under Windows System.Address is virtual
and can point anywhere.

As you may guess it is a quite heavy overhead, not only because of
copying data between process spaces, but also because of sending and
dispatching Windows messages.

Note, that if you implement stream Read/Write as individual Windows
messages it will become extremely slow. GNAT optimizes streaming of some
built-in objects, e.g. String. But as a general case you should expect
that streaming of any non-scalar object would cause multiple calls to
Read/Write and thus multiple individual Windows messages.

An efficient way to exchange data under Windows is a file mapping. See
CreateFileMapping and MapViewOfFile.

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createfilemappinga

https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-mapviewoffile

Then use CreateEvent with a name to signal states of the stream buffer
system-wide. Named Windows events are shared between processes.

https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createeventa

[ This is how interprocess stream is implemented for Windows in Simple
Components ]

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<uqqgk6$oro$1@rasp.pasdenom.info>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10441&group=comp.lang.ada#10441

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.niel.me!pasdenom.info!.POSTED.2a01:e0a:472:70f0:9dc:978a:d921:8ff3!not-for-mail
From: 314@drpi.fr (DrPi)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 15:42:13 +0100
Organization: <http://pasdenom.info/news.html>
Message-ID: <uqqgk6$oro$1@rasp.pasdenom.info>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfn4$eo0r$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 14:42:14 -0000 (UTC)
Injection-Info: rasp.pasdenom.info; posting-account="314@usenet"; posting-host="2a01:e0a:472:70f0:9dc:978a:d921:8ff3";
logging-data="25464"; mail-complaints-to="abuse@pasdenom.info"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:bp5B9L0XA2PBo3yao3OklAD+MaI= sha256:uGhEER6gZtcwpKsO38QasZ8EVnxeeZAj8axmInxpHfw=
sha1:GBGTsNXZ7EE1777D8qm7khz7Jag= sha256:1frMFWAEisPUAYEsMLTaGmsh9n/s2754cVTF/mmuVpE=
Content-Language: fr, en-US
In-Reply-To: <uqqfn4$eo0r$1@dont-email.me>
 by: DrPi - Sat, 17 Feb 2024 14:42 UTC

Le 17/02/2024 à 15:26, J-P. Rosen a écrit :
> Le 17/02/2024 à 14:36, DrPi a écrit :
> > The library Jean-Pierre pointed me to perfectly matches this usage.
> Light and easy to use. Thanks.
> :-)
>
> > One enhancement I see is to manage the buffer size to avoid buffer
> overflow (or did I missed something ?).
>
> I don't see what you mean here... On the memory side, we are
> reading/writing bytes from memory, there is no notion of overflow. And
> the number of bytes processed by Read/Write is given by the size of
> Item, so no overflow either...
>
A memory buffer IS limited in size. It is either a peripheral buffer or
a memory buffer you create yourself (my case). In either case, its size
is limited. When writing in the stream, you have to care to not overflow
the buffer.

Re: In memory Stream

<uqqgv3$f075$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10442&group=comp.lang.ada#10442

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 15:48:05 +0100
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <uqqgv3$f075$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfn4$eo0r$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 17 Feb 2024 14:48:03 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="662d3d0c8c5c8e50d9cee14792db885b";
logging-data="491749"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+zeWsY23kkmI2yHj/JClKRbV/42eZmt8Q="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:SsV9sExfMe6wPOwkvH6tyVjC2AE=
Content-Language: en-US
In-Reply-To: <uqqfn4$eo0r$1@dont-email.me>
 by: Dmitry A. Kazakov - Sat, 17 Feb 2024 14:48 UTC

On 2024-02-17 15:26, J-P. Rosen wrote:

> On the memory side, we are
> reading/writing bytes from memory, there is no notion of overflow.

In the Simple Components there is a pipe stream.

type Pipe_Stream
( Size : Stream_Element_Count
) is new Root_Stream_Type with private;

When a task writes the stream full (Size elements), it gets blocked
until another task reads something out.

Another implementation

type Storage_Stream
( Block_Size : Stream_Element_Count
) is new Root_Stream_Type with private;

rather allocates a new block of memory. The allocated blocks get reused
when their contents is read out.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<uqqhf3$orp$2@rasp.pasdenom.info>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10443&group=comp.lang.ada#10443

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!paganini.bofh.team!pasdenom.info!.POSTED.2a01:e0a:472:70f0:9dc:978a:d921:8ff3!not-for-mail
From: 314@drpi.fr (DrPi)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 15:56:34 +0100
Organization: <http://pasdenom.info/news.html>
Message-ID: <uqqhf3$orp$2@rasp.pasdenom.info>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfr4$eokb$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 14:56:35 -0000 (UTC)
Injection-Info: rasp.pasdenom.info; posting-account="314@usenet"; posting-host="2a01:e0a:472:70f0:9dc:978a:d921:8ff3";
logging-data="25465"; mail-complaints-to="abuse@pasdenom.info"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:E48h0/IBPQG2U8T9JdPkfdYZHRQ= sha256:PTRTgCaHsBZsaS2osY65QsmqFAkQCRdQ3JPtN9e9f58=
sha1:0ofkkAU4NVzB7WlF3CxJWSSvIpo= sha256:Of1OARUICpFKEMcOSP8ld3g6Qec1EBnJtjERSUmOrZU=
In-Reply-To: <uqqfr4$eokb$1@dont-email.me>
Content-Language: fr, en-US
 by: DrPi - Sat, 17 Feb 2024 14:56 UTC

Le 17/02/2024 à 15:28, Dmitry A. Kazakov a écrit :
> On 2024-02-17 14:36, DrPi wrote:
>
>> Concerning the OS and the buffer transfert mechanism, as I said, this
>> is under control. I use Windows and the WM_COPYDATA message.
>>
>> My usage is a bit special. The writing process writes a bunch of data
>> in a memory buffer then requests this buffer to be transferred to
>> another process by way of WM_COPYDATA. The receiving process reads the
>> data from the "new" memory buffer. I say "new" since the address is
>> different from the one used in the writing process (of course it can
>> not be the same).
>
> You ask Windows to copy a chunk of memory from one process space into
> another, so yes it is physically different memory. Different or same
> address tells nothing because under Windows System.Address is virtual
> and can point anywhere.
>
> As you may guess it is a quite heavy overhead, not only because of
> copying data between process spaces, but also because of sending and
> dispatching Windows messages.
>
> Note, that if you implement stream Read/Write as individual Windows
> messages it will become extremely slow. GNAT optimizes streaming of some
> built-in objects, e.g. String. But as a general case you should expect
> that streaming of any non-scalar object would cause multiple calls to
> Read/Write and thus multiple individual Windows messages.
>
> An efficient way to exchange data under Windows is a file mapping. See
> CreateFileMapping and MapViewOfFile.
>
>
> https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createfilemappinga
>
>
> https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-mapviewoffile
>
> Then use CreateEvent with a name to signal states of the stream buffer
> system-wide. Named Windows events are shared between processes.
>
>
> https://learn.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createeventa
>
> [ This is how interprocess stream is implemented for Windows in Simple
> Components ]
>
In my use case, there is no performance problem.
The purpose is to make an editor simple instance. When you launch the
editor the first time, everything is done as usual. Next time you launch
the editor (for example by double clicking on a file in file explorer)
the init code of the editor detects an instance of the editor is already
running, transfers the command line arguments to the first instance and
exit.
The buffer transfert occurs once when starting a new instance of the editor.

However, I keep your solution in mind. I might need it one day.
Thanks.

Re: In memory Stream

<ly34trkloh.fsf@pushface.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10444&group=comp.lang.ada#10444

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.swapon.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: simon@pushface.org (Simon Wright)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 18:09:02 +0000
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <ly34trkloh.fsf@pushface.org>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfr4$eokb$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="805b81416d070ad909fef11bbaf0e8d0";
logging-data="568167"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/WeGz/t/U1uDPCeT2B0P+XEvJv5NNa5fY="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin)
Cancel-Lock: sha1:23krplbNwOYqE7vl/ta8XxjwMpY=
sha1:mB0TjuaLUjfcGPz6OzlSEySqMmA=
 by: Simon Wright - Sat, 17 Feb 2024 18:09 UTC

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> Note, that if you implement stream Read/Write as individual Windows
> messages it will become extremely slow. GNAT optimizes streaming of
> some built-in objects, e.g. String. But as a general case you should
> expect that streaming of any non-scalar object would cause multiple
> calls to Read/Write and thus multiple individual Windows messages.

Our motivation for the memory stream was the equivalent of this for
UDP messages; GNAT.Sockets behaves (behaved?) exactly like this, so we
buffered the result of 'Output & wrote the constructed buffer to the
socket; on the other side, we read the UDP message, stuffed its contents
into a memory stream, then let the client 'Input.

I can't remember at this distance in time, but I think I would have
liked to construct a memory stream on the received UDP packet rather
than copying the content; the compiler wouldn't let me. Perhaps worth
another try.

Re: In memory Stream

<uqqv8e$hr7g$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10445&group=comp.lang.ada#10445

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.samoylyk.net!nyheter.lysator.liu.se!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: rosen@adalog.fr (J-P. Rosen)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 19:52:00 +0100
Organization: Adalog
Lines: 31
Message-ID: <uqqv8e$hr7g$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfn4$eo0r$1@dont-email.me>
<uqqgk6$oro$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 18:51:58 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="011f74747eef3fec73389fcfe6389fda";
logging-data="584944"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/QiXLVpJxZ5Vp6cJ43m8m7"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:i6xJ6zyD8WCb5qbxNHAjVWg+sgA=
Content-Language: en-US, fr
In-Reply-To: <uqqgk6$oro$1@rasp.pasdenom.info>
 by: J-P. Rosen - Sat, 17 Feb 2024 18:52 UTC

Le 17/02/2024 à 15:42, DrPi a écrit :
> Le 17/02/2024 à 15:26, J-P. Rosen a écrit :
>> Le 17/02/2024 à 14:36, DrPi a écrit :
>> > The library Jean-Pierre pointed me to perfectly matches this
usage. Light and easy to use. Thanks.
>> 🙂
>>
>> > One enhancement I see is to manage the buffer size to avoid
buffer overflow (or did I missed something ?).
>>
>> I don't see what you mean here... On the memory side, we are
reading/writing bytes from memory, there is no notion of overflow. And
the number of bytes processed by Read/Write is given by the size of
Item, so no overflow either...
>>
> A memory buffer IS limited in size. It is either a peripheral buffer
or a memory buffer you create yourself (my case). In either case, its
size is limited. When writing in the stream, you have to care to not
overflow the buffer.

The purpose of this stream is to access raw memory, so there is no
notion of "buffer size". It is up to you to match your (user) buffer
with the memory buffer. Of course, you can add a layer with all the
checks you want...

[PS] I tried to respond to your email, but it bounced...
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
https://www.adalog.fr https://www.adacontrol.fr

Re: In memory Stream

<uqr8ms$jui4$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10446&group=comp.lang.ada#10446

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 22:33:17 +0100
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <uqr8ms$jui4$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfr4$eokb$1@dont-email.me>
<ly34trkloh.fsf@pushface.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 17 Feb 2024 21:33:16 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="662d3d0c8c5c8e50d9cee14792db885b";
logging-data="653892"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19/gtjOUu9VvFhPTZU6TZ6JXhsKxgPalFg="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:WBM+cpF19QdkH8/9vSz36LmKmCM=
In-Reply-To: <ly34trkloh.fsf@pushface.org>
Content-Language: en-US
 by: Dmitry A. Kazakov - Sat, 17 Feb 2024 21:33 UTC

On 2024-02-17 19:09, Simon Wright wrote:

> I can't remember at this distance in time, but I think I would have
> liked to construct a memory stream on the received UDP packet rather
> than copying the content; the compiler wouldn't let me. Perhaps worth
> another try.

UDP is a kind of thing... Basically, there is no use of UDP except for
broadcasting, e.g. in LAN discovery.

In all other cases it is either TCP or multicast. Since UDP does not
guarantee either delivery or ordering. It would be a huge overhead to
implement reliable buffered streams on top of UDP, with sequence
numbers, acknowledgements, re-sending, reordering etc.

As for taking apart a UDP packet, it is straightforward. You simply
declare a stream element array of the packet size and map it on the
packet using:

pragma Import (Ada, A);
for A'Address use UDP_Packet'Address;

And somewhere

pragma Assert (Stream_Element'Size = 8);

just in case...

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<uqraad$k3pf$5@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10447&group=comp.lang.ada#10447

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.swapon.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sat, 17 Feb 2024 22:00:45 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <uqraad$k3pf$5@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info> <uqolir$1ha3$5@dont-email.me>
<uqptmp$bba0$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 17 Feb 2024 22:00:45 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="6ecbb5fd13673e938e0c0f21615ca6a8";
logging-data="659247"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX188aoD2fQkX5iP9gvNEL7P6"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:zVST0AGiOUNLtCwsOujXPlSGfDg=
 by: Lawrence D'Oliv - Sat, 17 Feb 2024 22:00 UTC

On Sat, 17 Feb 2024 10:19:22 +0100, Dmitry A. Kazakov wrote:

> On 2024-02-16 22:54, Lawrence D'Oliveiro wrote:
>
>> On Fri, 16 Feb 2024 10:41:12 +0100, DrPi wrote:
>>
>>> I though I'll use a Stream writing/reading in/from the memory buffer.
>>
>> Wouldn’t be simplest to let the OS manage the buffering for you?
>>
>> <https://manpages.debian.org/7/pipe.en.html>
>
> That would make applications OS-dependent.

That’s a standard POSIX function. I think even M****s*ft W**d*ws has
something resembling it.

Re: In memory Stream

<uqrhab$lhl1$3@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10448&group=comp.lang.ada#10448

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!rocksolid2!i2pn.org!news.chmurka.net!newsfeed.xs3.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 00:00:11 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <uqrhab$lhl1$3@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 18 Feb 2024 00:00:11 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="ef266a3a922f269062f854d615e239ef";
logging-data="706209"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Z0oTPPTP1ozwCcUBzFKIL"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:mFLs6j/0+eXk5opeUpFAKvPhzIw=
 by: Lawrence D'Oliv - Sun, 18 Feb 2024 00:00 UTC

On Sat, 17 Feb 2024 14:36:46 +0100, DrPi wrote:

> My usage is a bit special. The writing process writes a bunch of data in
> a memory buffer then requests this buffer to be transferred to another
> process by way of WM_COPYDATA.

I thought Windows had pipes.

Re: In memory Stream

<uqrhep$lhl1$4@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10449&group=comp.lang.ada#10449

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 00:02:33 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 12
Message-ID: <uqrhep$lhl1$4@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfn4$eo0r$1@dont-email.me>
<uqqgk6$oro$1@rasp.pasdenom.info>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 18 Feb 2024 00:02:33 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="ef266a3a922f269062f854d615e239ef";
logging-data="706209"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/uN88IILpbIH7mffQIudTw"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:iuP3kd96G51Op0yN1xqD99I3EEk=
 by: Lawrence D'Oliv - Sun, 18 Feb 2024 00:02 UTC

On Sat, 17 Feb 2024 15:42:13 +0100, DrPi wrote:

> A memory buffer IS limited in size. It is either a peripheral buffer or
> a memory buffer you create yourself (my case). In either case, its size
> is limited. When writing in the stream, you have to care to not overflow
> the buffer.

With pipes, the OS takes care of this for you. Once its kernel buffer is
full, further writes are automatically blocked until a reader has drained
something from the buffer.

It’s called “flow control”.

Re: In memory Stream

<uqskqi$106u7$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10452&group=comp.lang.ada#10452

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.hispagatos.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 11:06:11 +0100
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <uqskqi$106u7$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info> <uqolir$1ha3$5@dont-email.me>
<uqptmp$bba0$1@dont-email.me> <uqraad$k3pf$5@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 18 Feb 2024 10:06:10 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b11821256dd767875c04de89f6cd636b";
logging-data="1055687"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19HB/Ic+R64kfc4X3xoGnFDC43xQcEpGa0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:ElgkVBxIgKHjCH3Y4d0dMb6LRQk=
Content-Language: en-US
In-Reply-To: <uqraad$k3pf$5@dont-email.me>
 by: Dmitry A. Kazakov - Sun, 18 Feb 2024 10:06 UTC

On 2024-02-17 23:00, Lawrence D'Oliveiro wrote:
> On Sat, 17 Feb 2024 10:19:22 +0100, Dmitry A. Kazakov wrote:
>
>> On 2024-02-16 22:54, Lawrence D'Oliveiro wrote:
>>
>>> On Fri, 16 Feb 2024 10:41:12 +0100, DrPi wrote:
>>>
>>>> I though I'll use a Stream writing/reading in/from the memory buffer.
>>>
>>> Wouldn’t be simplest to let the OS manage the buffering for you?
>>>
>>> <https://manpages.debian.org/7/pipe.en.html>
>>
>> That would make applications OS-dependent.
>
> That’s a standard POSIX function. I think even M****s*ft W**d*ws has
> something resembling it.

Yes, Windows has a POSIX layer which nobody ever uses.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<uqskqn$106u7$2@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10453&group=comp.lang.ada#10453

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 11:06:16 +0100
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <uqskqn$106u7$2@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqrhab$lhl1$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 18 Feb 2024 10:06:15 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b11821256dd767875c04de89f6cd636b";
logging-data="1055687"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/gVV/i7jZmXPpDP2B9NjVd52834dLpSkA="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:h2hKydl90DgY26cyhErFtNICjSQ=
In-Reply-To: <uqrhab$lhl1$3@dont-email.me>
Content-Language: en-US
 by: Dmitry A. Kazakov - Sun, 18 Feb 2024 10:06 UTC

On 2024-02-18 01:00, Lawrence D'Oliveiro wrote:
> On Sat, 17 Feb 2024 14:36:46 +0100, DrPi wrote:
>
>> My usage is a bit special. The writing process writes a bunch of data in
>> a memory buffer then requests this buffer to be transferred to another
>> process by way of WM_COPYDATA.
>
> I thought Windows had pipes.

Yes it has, but very rarely used though much better designed than UNIX
pipes. See

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea

In general Windows has much richer and better API regarding interprocess
communication than Linux. After all Windows NT was sort of descendant of
VMS, which was light years ahead of UNIX Sys V. In recent times Linux
improved, e.g. they added futex stuff etc. BSD is far worse than Linux
in respect of API.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<lyplwujdc9.fsf@pushface.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10454&group=comp.lang.ada#10454

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.hispagatos.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: simon@pushface.org (Simon Wright)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 10:06:46 +0000
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <lyplwujdc9.fsf@pushface.org>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfr4$eokb$1@dont-email.me>
<ly34trkloh.fsf@pushface.org> <uqr8ms$jui4$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="ad4299653a872e9f5cf3ec88917e7b30";
logging-data="1049352"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Nwrkazon6QIF8ltbTle2rWZcm2Z/vs8k="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (darwin)
Cancel-Lock: sha1:4AteLeBxUBWw3iGSH23uNpUTaHY=
sha1:HnoE3vq8TwSWyTf0J4FcqI2SJLE=
 by: Simon Wright - Sun, 18 Feb 2024 10:06 UTC

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:

> UDP is a kind of thing... Basically, there is no use of UDP except for
> broadcasting, e.g. in LAN discovery.

Worked for us, sending radar measurements p-2-p at 200 Hz

> As for taking apart a UDP packet, it is straightforward. You simply
> declare a stream element array of the packet size and map it on the
> packet using:
>
> pragma Import (Ada, A);
> for A'Address use UDP_Packet'Address;
>
> And somewhere
>
> pragma Assert (Stream_Element'Size = 8);
>
> just in case...

OK if the participants all have the same endianness. We used XDR (and
the translation cost is nil if the host is big-endian, as PowerPCs are;
all the critical machines were PowerPC).

Re: In memory Stream

<uqsq4m$115pv$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10455&group=comp.lang.ada#10455

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bnl@nowhere.com (Björn Lundin)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 12:36:54 +0100
Organization: A noiseless patient Spider
Lines: 22
Message-ID: <uqsq4m$115pv$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqrhab$lhl1$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 18 Feb 2024 11:36:54 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a0faed3592ab8cdf72d79c362b8233c5";
logging-data="1087295"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX192ZGFuiuN7jNyn2+YvjwOz"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:EvAOnUnh1qIOEK6w1Ti99YZHI1I=
In-Reply-To: <uqrhab$lhl1$3@dont-email.me>
Content-Language: en-US
 by: Björn Lundin - Sun, 18 Feb 2024 11:36 UTC

On 2024-02-18 01:00, Lawrence D'Oliveiro wrote:
> On Sat, 17 Feb 2024 14:36:46 +0100, DrPi wrote:
>
>> My usage is a bit special. The writing process writes a bunch of data in
>> a memory buffer then requests this buffer to be transferred to another
>> process by way of WM_COPYDATA.
>
> I thought Windows had pipes.

It does,
We use it for out IPC in both Linux and Windows.
Works very well.
We use named pipes - where each process knows its name through
via env-var
At start they create a named pipe with that name

We use anonymous pipes for client communication

--
/Björn

Re: In memory Stream

<uqsv57$12j7s$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10457&group=comp.lang.ada#10457

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: mailbox@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 14:02:32 +0100
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <uqsv57$12j7s$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqqfr4$eokb$1@dont-email.me>
<ly34trkloh.fsf@pushface.org> <uqr8ms$jui4$1@dont-email.me>
<lyplwujdc9.fsf@pushface.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 18 Feb 2024 13:02:31 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="b11821256dd767875c04de89f6cd636b";
logging-data="1133820"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/BlnXucJwI3C0C/BHjRv2dE+CumExpoIU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:TfqrvlyqZy3prI73lTjOwSJfGjQ=
In-Reply-To: <lyplwujdc9.fsf@pushface.org>
Content-Language: en-US
 by: Dmitry A. Kazakov - Sun, 18 Feb 2024 13:02 UTC

On 2024-02-18 11:06, Simon Wright wrote:

> OK if the participants all have the same endianness. We used XDR (and
> the translation cost is nil if the host is big-endian, as PowerPCs are;
> all the critical machines were PowerPC).

I always override stream attributes and use portable formats. E.g. some
chained code for integers. Sign + exponent + normalized mantissa for
floats, again chained. That is all. There is no need in XDR, JSON, ASN.1
or other data representation mess. They are just worthless overhead.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: In memory Stream

<uqtqt5$1ej8q$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=10459&group=comp.lang.ada#10459

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.ada
Subject: Re: In memory Stream
Date: Sun, 18 Feb 2024 20:56:05 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 21
Message-ID: <uqtqt5$1ej8q$1@dont-email.me>
References: <uqnajr$svt$1@rasp.pasdenom.info>
<uqqcpf$orp$1@rasp.pasdenom.info> <uqrhab$lhl1$3@dont-email.me>
<uqskqn$106u7$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 18 Feb 2024 20:56:05 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="297432ee8be2f2c4ce47ce2a25257ed8";
logging-data="1527066"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19VT8uG4m9/6ML9U/fSZMxJ"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:6Zs2OnjrSgNT0m1ityU2Wc1Ybqg=
 by: Lawrence D'Oliv - Sun, 18 Feb 2024 20:56 UTC

On Sun, 18 Feb 2024 11:06:16 +0100, Dmitry A. Kazakov wrote:

> On 2024-02-18 01:00, Lawrence D'Oliveiro wrote:
>> On Sat, 17 Feb 2024 14:36:46 +0100, DrPi wrote:
>>
>>> My usage is a bit special. The writing process writes a bunch of data in
>>> a memory buffer then requests this buffer to be transferred to another
>>> process by way of WM_COPYDATA.
>>
>> I thought Windows had pipes.
>
> Yes it has, but very rarely used though much better designed than UNIX
> pipes.

So why don’t programmers use it?

> In general Windows has much richer and better API regarding interprocess
> communication than Linux.

So why is it that Windows programs tend to avoid running multiple processes?

Pages:123
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor