Hi all,

I am in the process of integrating Cairngorm in a modular application.
The modular app is composed of one shell and several modules.

I would like that one module can send a message to another module via
the shell.

How to do that?
1. In each module, I define a front controller which will treat the
events relative to the module.
Ex:
In module A: event types: A1,A2,A3
In module B: event types: B1,B2,B3
In module C...
2. In the shell, I define a front controller which will treat the events
relative to the inter-module communication.
Ex:
In shell: event types: A.A1,B.B2
i.e. the event A1 from module A can be dispatched from outside module A
(module B or module C can dispatch the event  A.A1)
i.e. the event B2 from module B can be dispatched from outside module B
(module A or module C can dispatch the event  B.B2)
Since A2,A3,B1 and B3 are not initialised in the shell controller, they
cannot be dispatched from outside their own module.
3. When the event A1 is dispatched from module A, the front controller
of module A will do the job; that's the usual case.
4. When the event A.A1 is dispatched from module B, the shell controller
will do the job; there is an unique command in the shell controller
(ShellCommand) which dispatch a new event with type A1. Then, the front
controller of module A will do the job.

The problem is I have no idea how I can prevent module B to dispatch
directly A1 (instead of A.A1) i.e. it will bypass the shell controller.
What I don't like is that Command objects have a global scope. If you
dispatch an event from whatever module, the event will be catched by the
command even if it's not part of the same module. 
How can I restrict the scope of the commands in a module context?

Rgds,

Olivier

---------------------
An electronic message is not binding on its sender.
Any message referring to a binding engagement must be confirmed in writing and 
duly signed.
---------------------

Reply via email to