[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