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
next prev 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