From: bobduff@world.std.com (Robert A Duff)
Subject: Re: protected types in Ada95
Date: 1997/09/10
Date: 1997-09-10T00:00:00+00:00 [thread overview]
Message-ID: <EGB046.MEz@world.std.com> (raw)
In-Reply-To: EGArp1.H8K.0.-s@inmet.camb.inmet.com
Tucker, I thought you could parse Ada code in your head! ;-) ;-)
In article <EGArp1.H8K.0.-s@inmet.camb.inmet.com>,
Tucker Taft <stt@houdini.camb.inmet.com> wrote:
>SAD KAT (aic001@teix.uib.es) wrote:
>
>: Hi,
>: I have a program with differents tasks reading and writting data. I have
>: read that I have to protect my data to be sure that the values are the
>: correct ones, to keep a exclussive access to them.
>
>: I've done a think like that:
>
>: package data_pac is
>: type type_of_var is record
>: -- here are the description
>: end record;
>: protected type type_of_var_prot is
>: function read_var return integer;
>: procedure write_var (item : in type_of_var);
>: private
>: var2 : type_of_var;
>: end type_of_var_prot;
>: end data_pac;
>
>: package body data_pac is
>: protected type type_of_var_prot is
^^^^
You want "body" there, instead of "type".
>: function read_var return integer is
>: begin
>: -- body of the function
>: end read_var;
>: procedure write_var (item : in type_of_var) is
>: begin
>: -- body of the procedure
>: end write_var;
>: end type_of_var_prot;
>
>: begin
>: null;
>: end data_proc;
>
>
>: The compiler shows that message : "subprogram body not allowed here"
>: and I don't knwo where's thw mistake.
The compiler is seeing a subprogram body inside a protected type
declaration, which is illegal syntax.
>When you have a question like this, be sure to post the actual
>source code and the actual error message. The error message probably
>identified the exact line and column where the problem occurred.
>Without that information, we are just guessing.
>
>
>: I have also another doubt, how
>: do I have to use the function read_var and the procedure write_var?
>
>: I mean, if I have in the main package:
>
>: procedure main is
>: data_a : type_of_var;
>: data_b : type_of_var_prot;
>: begin
>: get(data_a);
>: data_b.write_var(data_a);
>: -- rest of program
>: end main;
>
>: Is this correct?
>
>Looks correct. You could use "read_var" as follows:
>
> data_a := data_b.read_var;
>
>: Thanks for helping and please forgive my poor English,
>
>De' nada. [Please forgive my poor Spanish!]
>
>: mailto: sadkat@hotmail.com
>: mailto: aic001@teix.uib.es
>
>: Joan Andreu Juan Torrens (Illes Balears, SPAIN)
>
>--
>-Tucker Taft stt@inmet.com http://www.inmet.com/~stt/
>Intermetrics, Inc. Burlington, MA USA
next prev parent reply other threads:[~1997-09-10 0:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-09-07 0:00 protected types in Ada95 SAD KAT
1997-09-10 0:00 ` Tom Moran
1997-09-11 0:00 ` Stephen Leake
1997-09-10 0:00 ` Tucker Taft
1997-09-10 0:00 ` Robert A Duff [this message]
1997-09-11 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox