comp.lang.ada
 help / color / mirror / Atom feed
From: "Marin David Condic" <mcondic.auntie.spam@acm.org>
Subject: Re: [OT] Best way to isolate a GUI?
Date: Wed, 19 Feb 2003 08:06:34 -0500
Date: 2003-02-19T13:07:44+00:00	[thread overview]
Message-ID: <b2vvj0$8fe$1@slb3.atl.mindspring.net> (raw)
In-Reply-To: 3E527506.6070209@cogeco.ca

Well, for the sender, there needs to be only one queue. For the receiver,
you're ultimately going to end up with case statements - either one big
giant one explicitly created or a bunch of smaller ones inside various
handling tasks or ones that are built for you via dispatching. I have not
given the idea hundreds of hours of thought yet, but I'm sure a workable
solution does exist. I've just never liked callbacks and thought that
receiving messages in some manner is a much better answer.

I've worked on systems (mostly LockMart stuff, but I know other companies
did it) where there is an underlying messaging system where applications
"register" for the messages they want to receive & create "mailboxes" to
receive them. You basically end up with one process per computer that acts
as the "mailman". It makes for a reasonably simple & elegant design of an
app where a given task need only hear about the things it wants to do
something about. It solves a lot of other problems along the way like socket
overhead and needing to know about what else is out there attempting to
communicate. It has its problems too, but in general its a good way to build
loosely coupled distributed applications. I could imagine something similar
working in a client/server mode to build an independent GUI without
callbacks or excessively big case statements. You create a task for each
window and it registers for events relating to that window. Its still got to
have a case statement - or some kind of dispatching - but its localized.

MDC
--
======================================================================
Marin David Condic
I work for: http://www.belcan.com/
My project is: http://www.jsf.mil/

Send Replies To: m c o n d i c @ a c m . o r g

    "Going cold turkey isn't as delicious as it sounds."
        -- H. Simpson
======================================================================

Warren W. Gay VE3WWG <ve3wwg@cogeco.ca> wrote in message
news:3E527506.6070209@cogeco.ca...
>
> But this still suffers from one problem: Each queue in your task
> would then have a monster case statement to split out the work
> according to the widget that is receiving the event. Compare this
> to the registered callback where only the interested widget for
> the event gets the callback. No big case statement required for
> event, or widget.
>
> Don't get me wrong.. I like the idea of queues and tasks. But this seems
> a clumsy thing beside a callback.
>






  reply	other threads:[~2003-02-19 13:06 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-16 10:19 [OT] Best way to isolate a GUI? Jano
2003-02-16 14:47 ` Ed Falis
2003-02-16 14:49 ` Victor Porton
2003-02-17 20:52   ` Jano
2003-02-16 16:36 ` Robert C. Leif
2003-02-17  8:44   ` Preben Randhol
2003-02-17 16:22     ` Robert C. Leif
2003-02-17 17:30     ` Jeffrey Carter
2003-02-17 17:54       ` Warren W. Gay VE3WWG
2003-02-17 19:06         ` Randy Brukardt
2003-02-18  3:15           ` Warren W. Gay VE3WWG
2003-02-18 16:14             ` Robert C. Leif
2003-02-18 18:10             ` Randy Brukardt
2003-02-18 21:12               ` Warren W. Gay VE3WWG
2003-02-18 23:20                 ` Randy Brukardt
2003-02-19 18:28                   ` Warren W. Gay VE3WWG
2003-02-20 19:39                     ` Randy Brukardt
2003-02-20 21:34                       ` Warren W. Gay VE3WWG
2003-02-20  7:50                   ` Dale Stanbrough
2003-02-19 12:49                 ` Marin David Condic
2003-02-19 18:35                   ` [OT] Best way to isolate a GUI? (The final concensous?) Warren W. Gay VE3WWG
2003-02-20 12:40                     ` Marin David Condic
2003-02-20 13:13                       ` Dmitry A. Kazakov
2003-02-20 22:01                       ` Warren W. Gay VE3WWG
2003-02-21  1:25                         ` tmoran
2003-02-21  2:08                         ` Marin David Condic
2003-02-21 17:27                           ` Jeffrey Carter
2003-02-22 14:10                             ` Marin David Condic
2003-02-21 18:02                           ` Warren W. Gay VE3WWG
2003-02-22 14:49                             ` Marin David Condic
2003-02-22 22:50                               ` tmoran
2003-02-23  5:18                               ` Robert C. Leif
2003-02-24 18:06                               ` Warren W. Gay VE3WWG
2003-02-25  1:20                                 ` Robert C. Leif
2003-02-25 17:57                                   ` Warren W. Gay VE3WWG
2003-02-25 12:41                                 ` Marin David Condic
2003-02-25 13:32                                   ` Ole-Hjalmar Kristensen
2003-02-25 17:33                                     ` [OT] Best way to isolate a GUI? (The final fronteer?) Warren W. Gay VE3WWG
2003-02-20  8:26                   ` [OT] Best way to isolate a GUI? tmoran
2003-02-20 12:51                     ` Marin David Condic
2003-02-20 18:47                       ` tmoran
2003-02-17 19:31         ` tmoran
2003-02-18  1:37         ` Jeffrey Carter
2003-02-18  3:39           ` Warren W. Gay VE3WWG
2003-02-18 23:36           ` Randy Brukardt
2003-02-18 13:29         ` Marin David Condic
2003-02-18 18:01           ` Warren W. Gay VE3WWG
2003-02-19 13:06             ` Marin David Condic [this message]
2003-02-16 17:25 ` achrist
2003-02-16 21:24 ` Bobby D. Bryant
2003-02-16 21:52 ` David Marceau
2003-02-17  0:57 ` Re; " tmoran
2003-02-17  7:25   ` Jano
2003-02-17 14:09     ` Bobby D. Bryant
2003-02-17 21:12       ` Jano
2003-02-18  7:24         ` Jean-Pierre Rosen
2003-02-18 13:08 ` Marin David Condic
replies disabled

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