[omniORB] DSI / DII question
Juan M. Casillas
jcasilla.madrid@sinvest.es
Thu, 17 Feb 2000 13:19:04 +0100
Hello folks !
I have a little problem using DII / DSI ... well, I want to
implement something
like a multiplexor object, lets go explain it:
I'm writting a object that serves Invocations using DSI from
other clients,
this clients can call any method with any number of parameters
(the server
don't know the method's name neither the number and type of the
parameters)
from this object; then this object find the objects having the
method (using
internal mechanisms) and then call it over them.
My problem is that in the DSI implementation, I must know the number
and the
type of the parameters that a method has. (I need this because I
have to build
the NVList and then add the *exact* number of parameters and type,
so I
can call request->params(list)). My question is ... Can I extract
from the ORB
(or from somewhere) the info that I need to do this ? I need to
know the number
of parameters, and the type of each one ... or any workarround that
lets me manage this ...
The goal is multiplex one method call in more over various objects
(see this example)
we have five objects, object S1,S2,S3 are servants that have in
their IDL interface the
method turn_on(), object A that wants to invoke the method turn_on()
over S1,S2,S3
and object M is the multiplexor (M knows how to find S1,S2 and S3,
but M doesn't
know nothing about their IDLS, methods ...), so the steps
are three:
1) object A invoke method turn_on() over the object M
2) M receives the invocation using DSI and look for S1,S2,S3 then
3) M sends tree invocations: S1.turn_on() S2.turn_on() and
S3.turn_on()
Don't worry about return values. The methods could have more
parameters (but all the
method invocations are equal, so we can invoque on M turn_on() or
set_things(t1,t2,t3)
but M multiplex all the calls in the same way with the same number
of params)
Thanks
Kind Regards
Juan M. Casillas
assman@gsyc.inf.uc3m.es