From: Gautier <Gautier.deMontmollin@Maths.UniNe.CH>
Subject: Access to procedures
Date: 1999/06/25
Date: 1999-06-25T00:00:00+00:00 [thread overview]
Message-ID: <37737285.5CF9ED5F@Maths.UniNe.CH> (raw)
Hello, Reference Manual gurus!
I've encountered a stupid but sticky problem by implementing my
Unzip-Ada project. In the interactive versions of extract procedures,
I pass an access to a feedback procedure for display & interaction.
*But* whatever the way I nest and subtype the things, the compiler
(GNAT) tells me (certainly with good reasons):
"subprogram must not be deeper than access type"
even when it doesn't seem depper at all! So, my question is:
how to do it ?
The code in question is :
* in Unzip package spec :
type feedback_proc is access
procedure ( percents_done: in natural; user_abort: out boolean );
procedure Extract(from : zip_info; what : String;
method : out pkzip_method;
feedback : feedback_proc );
* in a main program (one of many attempts!) :
subtype local_feedback_proc is feedback_proc;
procedure My_feedback( percents_done: natural; user_abort: out boolean
) is
new_done_dots: natural:= (dots * percents_done) / 100;
begin
for i in done_dots .. new_done_dots loop
Put('.');
end loop;
user_abort:= false;
end My_feedback;
-- My_feedback_access: constant local_feedback_proc:= My_feedback'access;
procedure Do_Unzip is
begin
...
Extract( zi, Argument(i), method, My_feedback_access );
end Do_unzip;
NB: a generic solution doesn't seem a solution as some packages,
basically non-generic, have to call the feedback procedure; making
the whole generic could become heavy.
--
Gautier
--------
http://members.xoom.com/gdemont/
next reply other threads:[~1999-06-25 0:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-06-25 0:00 Gautier [this message]
1999-06-25 0:00 ` Access to procedures David Botton
1999-06-25 0:00 ` Ehud Lamm
1999-06-25 0:00 ` Ted Dennison
1999-06-25 0:00 ` David Botton
1999-06-25 0:00 ` tmoran
1999-06-26 0:00 ` Gautier
1999-06-26 0:00 ` Brian Rogoff
1999-06-26 0:00 ` tmoran
1999-06-27 0:00 ` David Botton
1999-06-27 0:00 ` Brian Rogoff
1999-06-27 0:00 ` tmoran
1999-06-28 0:00 ` Gautier
1999-06-26 0:00 ` David C. Hoos, Sr.
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox