comp.lang.ada
 help / color / mirror / Atom feed
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






  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