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
next prev 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