comp.lang.ada
 help / color / mirror / Atom feed
From: adambeneschan@gmail.com
Subject: Re: Pass a serial port as user data in a GTK callback handler?
Date: Mon, 17 Feb 2014 08:13:09 -0800 (PST)
Date: 2014-02-17T08:13:09-08:00	[thread overview]
Message-ID: <050a1b45-c312-4fff-96f9-7c3d01466500@googlegroups.com> (raw)
In-Reply-To: <bmabpcFq9c8U1@mid.individual.net>

On Saturday, February 15, 2014 3:32:58 PM UTC-8, hreba wrote:
> Hi,
> 
> I am new to Ada and still overwhelmed by the complexity of the language.
> 
> My actual programming exercise has a GTK GUI, and I want a callback 
> handler to communicate through a serial port, so I need to pass the port 
> in my user data, which must be of
> 
>     type User_Type (<>) is private;
> 
> which means it must be nonlimited.
> 
> But GNAT.Serial_Communications.Serial_Port is limited:
> 
>     type Serial_Port is new Ada.Streams.Root_Stream_Type with private;
>     type Root_Stream_Type is abstract tagged limited private;
> 
> I tried to pass a reference to the port, and it must be an "access all" 
> (because it is not allocated by my, but a preexisting variable (hardware 
> resource), as I understand it):
> 
>     port: access all GNAT.Serial_Communications.Serial_Port;
> 
> But then I get an error message
> 
>     "all" is not permitted for anonymous access types.
> 
> Is there a solution?

I agree with everyone else that anonymous access types aren't needed in this case, and you're better off using a named access type or something else.  Having said that, I just wanted to point out something about Ada: all anonymous access types are automatically "access all", i.e. they can refer to aliased variables.  So you could have solved the problem by just removing the "all" keyword.

                                 -- Adam


  parent reply	other threads:[~2014-02-17 16:13 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-15 23:32 Pass a serial port as user data in a GTK callback handler? hreba
2014-02-16  0:35 ` Jeffrey Carter
2014-02-16 16:18   ` hreba
2014-02-16  7:45 ` Niklas Holsti
2014-02-16 16:14   ` hreba
2014-02-16  9:20 ` Dmitry A. Kazakov
2014-02-16 16:57   ` hreba
2014-02-16 18:02     ` Dmitry A. Kazakov
2014-02-17 16:13 ` adambeneschan [this message]
2014-02-17 16:20   ` adambeneschan
2014-02-17 21:31     ` Robert A Duff
2014-02-19  0:53       ` Randy Brukardt
2014-02-19 22:22         ` Robert A Duff
2014-02-20  0:34           ` Randy Brukardt
2014-02-20 11:07             ` Simon Wright
2014-02-20 16:11             ` Robert A Duff
replies disabled

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