From: "Jeffrey R. Carter" <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: Ada x <whatever> Datagram Sockets
Date: Fri, 8 Feb 2019 22:26:18 +0100
Date: 2019-02-08T22:26:18+01:00 [thread overview]
Message-ID: <q3ks5q$pcg$1@dont-email.me> (raw)
In-Reply-To: <9c63d0be-fffa-4dab-a879-921fd723b8d8@googlegroups.com>
On 2/8/19 9:35 PM, Rego, P. wrote:
>> What the OP needs to do is
>>
>> 1. Get Length, the length of the data.
>> 2. Create C : Interfaces.C.char_array (1 .. Length)
>> 3. Transfer the data into C
>> 4. Use Interfaces.C.To_Ada (C) to transform C into an Ada String
Now that I look at it in more detail, it's probably better to do something like
function To_String (Buffer : Ada.Streams.Stream_Element_Array) return String is
Result : String (1 .. Buffer'Length);
Last : Natural := 0;
begin -- To_String
Convert : for I in Buffer'range loop
exit Convert when Buffer (I) = 0; -- If NUL terminated
Last := Last + 1;
Result (Last) := Character'Val (Buffer (I) );
end loop Convert;
return Result (1 .. Last);
end To_String;
Buffer : Ada.Streams.Stream_Element_Array (1 .. Big_Enough);
Last : Ada.Streams.Stream_Element_Offset;
...
Receive_Socket (Socket => Socket, Item => Buffer, Last => Last);
Do_Something (To => To_String (Buffer (1 .. Last) ) );
--
Jeff Carter
"I've seen projects fail miserably for blindly
applying the Agile catechism: we're Agile, we
don't need to stop and think, we just go ahead
and code!"
Bertrand Meyer
150
next prev parent reply other threads:[~2019-02-08 21:26 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-06 23:10 Ada x <whatever> Datagram Sockets Rego, P.
2019-02-07 0:42 ` Jere
2019-02-07 5:28 ` Rego, P.
2019-02-07 6:00 ` Egil H H
2019-02-07 6:41 ` Rego, P.
2019-02-07 7:23 ` Egil H H
2019-02-07 11:48 ` Jere
2019-02-08 19:41 ` Rego, P.
2019-02-08 20:31 ` Dmitry A. Kazakov
2019-02-08 21:56 ` Rego, P.
2019-02-07 8:28 ` Dmitry A. Kazakov
2019-02-07 10:08 ` Simon Wright
2019-02-08 0:15 ` Randy Brukardt
2019-02-08 8:25 ` Simon Wright
2019-02-08 13:24 ` Dmitry A. Kazakov
2019-02-09 1:01 ` Randy Brukardt
2019-02-10 17:54 ` Simon Wright
2019-02-11 8:39 ` Dmitry A. Kazakov
2019-02-11 13:35 ` Simon Wright
2019-02-11 14:25 ` Dmitry A. Kazakov
2019-02-11 15:19 ` Simon Wright
2019-02-11 16:04 ` Dmitry A. Kazakov
2019-02-11 23:19 ` Randy Brukardt
2019-02-12 11:35 ` Simon Wright
2019-02-08 19:44 ` Rego, P.
2019-02-07 11:47 ` Jere
2019-02-07 18:00 ` Jeffrey R. Carter
2019-02-08 20:35 ` Rego, P.
2019-02-08 21:26 ` Jeffrey R. Carter [this message]
2019-02-08 22:02 ` Rego, P.
2019-02-08 21:38 ` Dmitry A. Kazakov
2019-02-08 20:00 ` Rego, P.
2019-02-07 10:11 ` Simon Wright
2019-02-08 20:03 ` Rego, P.
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox