comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: OO problem: Performing actions on messages (very long, sorry)
Date: Mon, 10 Jan 2005 15:22:22 +0100
Date: 2005-01-10T15:22:22+01:00	[thread overview]
Message-ID: <1gsktm8wimsc$.1o2yngarlww9s$.dlg@40tude.net> (raw)
In-Reply-To: 1105346564.204857.53640@c13g2000cwb.googlegroups.com

On 10 Jan 2005 00:42:44 -0800, per wrote:

>>How do you plan to maintain data consistency of a message if the user may
>>arbitrarily override its fields? I would try to do it more OO. To think
> 
> Well, that's the user's problem. Or rather, that's the point, sort of.
> See, this is a test equipment and shall enable modification of messages
> in "any" way in order to test how the test object (a computer) reacts.

The reaction could be "Access violation" (:-)) It is utterly untyped, or
non-OO, I should say. So it looks not very promising to to solve it using
OO. I still have an impression that you should return back to domain
analysis and find better objects than mysterious actions and messages. At
least there should be no place for the word "any".

>>about what can be done with a message. And consider action as an
>>implementation detail of a concrete type of messages. Then actions could
>>vanish. (Just a guess, I still can't tolerate both messages and actions in
>>one bottle. (:-))
>>
>>> Can an action, eg Override_A, exist without an M1 instance to "point"
>>> at?
>>
>>It cannot, this is the whole idea of access discriminants. They are never
>>null and cannot be changed. Otherwise one should use access types
>>(pointers).
>>
>>> Action has a different life-cycle than Message.
>>
>>That's no problem as long as its life in Message's one. For exampe:
>>
>>declare
>>  M : aliased M1;
>>begin
>>  ...
>>  declare
>>     A : Override_A (M'Access);
>>  begin
>>     ... -- The scope of the action A is nested
>>  end;
>>  ...
>>end;
> 
> How would you create a schedule of actions before any messages exist?
> (Schedule = Plan of what actions should be taken to what type of
> messages and when, created *before* any message instances exist)

So you schedule actions on something that even does not exist. It is a bit
strange. Normally scheduling depends on some state of *existing* scheduled
items. Probably this unconventional use of terms message and action is the
source of the misunderstanding. Aren't messages used to invoke actions?
Aren't scheduled actions invoked by messages from a scheduler?

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2005-01-10 14:22 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-22 13:49 OO problem: Performing actions on messages (very long, sorry) per
2004-12-22 15:17 ` Dmitry A. Kazakov
2004-12-22 16:28 ` Martin Krischik
2004-12-22 17:42   ` per
2004-12-22 18:16     ` Martin Krischik
2004-12-22 19:54     ` Dmitry A. Kazakov
2005-01-03 12:37       ` per
2005-01-03 14:14         ` Dmitry A. Kazakov
2005-01-04 12:05           ` per
2005-01-04 13:30             ` Dmitry A. Kazakov
2005-01-04 15:21               ` per
2005-01-04 17:47                 ` Dmitry A. Kazakov
2005-01-05 12:01                   ` per
2005-01-05 13:23                     ` Dmitry A. Kazakov
2005-01-05 15:59                       ` per
2005-01-05 20:44                         ` Dmitry A. Kazakov
2005-01-10  8:42                           ` per
2005-01-10 14:22                             ` Dmitry A. Kazakov [this message]
2005-01-10 16:24                               ` per
2005-01-10 19:09                                 ` Dmitry A. Kazakov
2005-01-11  9:06                                   ` per
2004-12-22 17:46   ` per
2004-12-22 18:02     ` Martin Krischik
2005-01-03 10:05       ` per
2004-12-22 18:35     ` u_int32_t
2004-12-22 18:38       ` u_int32_t
2004-12-24 18:52 ` Nick Roberts
2005-01-03 16:59   ` per
2005-01-10 12:10   ` per
2005-01-10 13:49     ` Marius Amado Alves
2005-01-10 21:54 ` Simon Wright
replies disabled

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