comp.lang.ada
 help / color / mirror / Atom feed
From: Victor Porton <porton@narod.ru>
Subject: Re: Simple Components (Generic_Directed_Graph)
Date: Tue, 31 Oct 2017 13:12:42 +0200
Date: 2017-10-31T13:12:42+02:00	[thread overview]
Message-ID: <ot9lr9$4u6$1@gioia.aioe.org> (raw)
In-Reply-To: ot89nb$72j$1@gioia.aioe.org

Dmitry A. Kazakov wrote:

> On 2017-10-30 22:20, Victor Porton wrote:
> 
>> The issue here that equal strings should get equal access values. That is
>> the same string should be never in more than one node.
>> 
>> Thus I use a map from URIs (or they could be strings) to node access
>> values.
> 
> Use a set of general constant access type instead. I don't know it goes
> with Ada containers, but normally you should be able to define a set
> with custom < and = defined on that access:
> 
>     function "=" (Left, Right : Pointer) return Boolean is
>     begin
>        return Left = Right or else
>               (Left /= null and then Left.all = Right.all);
>     end "=";
> 
>     function "<" (Left, Right : Pointer) return Boolean is
>     begin
>        return Right /= null and then
>               (Left = null or else Left.all < Right.all);
>     end "<";
> 
> If you put each node into the set taking Node.all'Unchecked_Access. You
> could test a given aliased string by taking its 'Unchecked_Access. No
> copies.

Why Node.all'Unchecked_Access? Isn't it the same as Node?

Why no copies? Because of so defined "<"?

> Alternatively you can use a set of Node with order operations defined as
> above and allocate a copy of the tested string in the test. You then
> free that string if it is already in the set and use one in the set
> instead. If duplicated strings are rather exception a few allocations
> should be no problem.

Duplicated strings is NOT an exception.

What should I do?

> An finally you can have a set of access to String and a graph of that
> access to String nodes. I.e. Node would be an access to access to
> String. You can use a handle to reference counted String instead of the
> plain access to String.

-- 
Victor Porton - http://portonvictor.org

  parent reply	other threads:[~2017-10-31 11:12 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-30 10:41 Simple Components (Generic_Directed_Graph) Victor Porton
2017-10-30 11:04 ` Victor Porton
2017-10-30 11:34   ` Dmitry A. Kazakov
2017-10-30 11:23 ` Dmitry A. Kazakov
2017-10-30 14:58   ` Victor Porton
2017-10-30 15:46     ` Dmitry A. Kazakov
2017-10-30 17:46       ` Dennis Lee Bieber
2017-10-30 20:29         ` Dmitry A. Kazakov
2017-10-30 15:13   ` Victor Porton
2017-10-30 15:54     ` Dmitry A. Kazakov
2017-10-30 18:30   ` Victor Porton
2017-10-30 20:43     ` Dmitry A. Kazakov
2017-10-30 21:20       ` Victor Porton
2017-10-30 22:39         ` Dmitry A. Kazakov
2017-10-31  7:36           ` Simon Wright
2017-10-31  8:16             ` Dmitry A. Kazakov
2017-10-31 11:12           ` Victor Porton [this message]
2017-10-31 12:42             ` Dmitry A. Kazakov
2017-10-31 15:07               ` Victor Porton
2017-10-31 15:48                 ` Dmitry A. Kazakov
replies disabled

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