From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: * X-Spam-Status: No, score=1.8 required=3.0 tests=BAYES_50,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.5-pre1 X-Received: by 2002:ad4:4af4:: with SMTP id cp20mr3334831qvb.40.1600198548879; Tue, 15 Sep 2020 12:35:48 -0700 (PDT) X-Received: by 2002:ac8:319d:: with SMTP id h29mr18802716qte.32.1600198548514; Tue, 15 Sep 2020 12:35:48 -0700 (PDT) Path: eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 15 Sep 2020 12:35:48 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=92.56.166.72; posting-account=C8J7NQoAAAD_ybGY7--QIRi6KpLjoH1Z NNTP-Posting-Host: 92.56.166.72 References: <27269975-58eb-407b-98ca-344bee6894d2n@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Visibility issue From: Daniel Injection-Date: Tue, 15 Sep 2020 19:35:48 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader02.eternal-september.org comp.lang.ada:60150 List-Id: El lunes, 14 de septiembre de 2020 a las 16:42:26 UTC+2, Dmitry A. Kazakov = escribi=C3=B3: > task body Caller is=20 > My_Handle : Handle :=3D Create (6);=20 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 diffe= rent options. I will think about to refactoring everything i have or even b= uild 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 t= he 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 packag= es 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 t= his 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 implementatio= n packages. -The user needs to set a limited number of callback procedure with this fla= vor: "Procedure (S : in out Tagged_APi_Type)" -The Implementation package needs to trigger the procedure defined in the A= PI. (Here comes to problems): -->The implementation package needs to manipulate some hide part of the Tag= ged_API_Type when is triggered ------>Here comes the problem. From the implementing package is not possi= ble 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.