comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Visibility issue
Date: Wed, 16 Sep 2020 09:14:19 +0200	[thread overview]
Message-ID: <rjse0b$1d3c$1@gioia.aioe.org> (raw)
In-Reply-To: cb79fa3c-0153-47d4-9e28-6e1f16a1b7f6n@googlegroups.com

On 15/09/2020 21:35, Daniel wrote:
> El lunes, 14 de septiembre de 2020 a las 16:42:26 UTC+2, Dmitry A. Kazakov escribió:
>> task body Caller is
>> My_Handle : Handle := Create (6);
> Dmitry, let me paste my answer i give to Jeff as an introduction to explain better the problem. First of all, I want to thank you to point me to different options. I will think about to refactoring everything i have or even build from scratch if I'm not able to build from what i already have.
> 
> For the requirements, It's not a problem to have a public constructor for the handle, in fact, i will need one for users. The real problem is to have constructors or function that i need to be visible from implementing packages and at the same time NOT visible from users that only are allowed to do a "with API.XXX"
> 
> I have the next requirements:
> - I need to pack all calls from users in just one Package API Hierarchy.
> - The details and complexity of the implementation needs to be outside of this API hierarchy as much as possible.
> -I need to use tagged types as much as possible for the calls from users to API package. (I'm not a big fan of this also but its a requirement)
> -This API tagged types needs to connect the API Side with the implementation packages.
> -The user needs to set a limited number of callback procedure with this flavor: "Procedure (S : in out Tagged_APi_Type)"
> -The Implementation package needs to trigger the procedure defined in the API. (Here comes to problems):
> -->The implementation package needs to manipulate some hide part of the Tagged_API_Type when is triggered
> ------>Here comes the problem. From the implementing  package  is not possible to see the private part of the API package. I think because visibility is not related to type, is related to package where package exists.

That is OK, but the hidden part need to be constructed in some way. Your 
requirements are silent about how. There exist only two possibilities, 
it is either generated internally or else provided by the client 
externally in some form, e.g. as parameters for the constructing function.

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

  reply	other threads:[~2020-09-16  7:14 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11 10:37 Visibility issue Daniel
2020-09-11 11:51 ` Maxim Reznik
2020-09-11 20:11   ` Daniel
2020-09-11 14:23 ` Jeffrey R. Carter
2020-09-11 20:17   ` Daniel
2020-09-11 22:36     ` Jeffrey R. Carter
2020-09-14 10:47       ` Daniel
2020-09-14 16:10         ` Jeffrey R. Carter
2020-09-15 19:11           ` Daniel
2020-09-15 20:03             ` Jeffrey R. Carter
2020-09-11 21:05 ` Dmitry A. Kazakov
2020-09-14 11:33   ` Daniel
2020-09-14 14:42     ` Dmitry A. Kazakov
2020-09-15 19:35       ` Daniel
2020-09-16  7:14         ` Dmitry A. Kazakov [this message]
2020-09-16 10:23           ` Daniel
2020-09-16 10:58             ` Dmitry A. Kazakov
2020-09-16 14:35               ` Daniel
2020-09-16 14:49                 ` Jeffrey R. Carter
2020-09-16 15:05                 ` Dmitry A. Kazakov
2020-09-16 20:09                   ` Daniel
2020-09-16 21:48                     ` Simon Wright
2020-09-17 13:31                       ` Daniel
2020-09-17 15:00                         ` Dmitry A. Kazakov
2020-09-17 15:32                           ` Daniel
2020-09-17 16:47                             ` Dmitry A. Kazakov
2020-09-18  8:05                         ` Simon Wright
2020-09-14 16:18 ` Simon Wright
2020-09-17 15:58 ` Jere
2020-09-17 16:10 ` Jere
2020-09-18  8:08   ` Simon Wright
2020-09-17 21:47 ` Shark8
replies disabled

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