Client calling servant with interface as param (attn: Jules Colding)



Hi All,

I'm trying to implement a C client using ORBit2 which calls a servant and 
provides another interface as an argument.

Stripped-down pseudo-IDL:

interface foo
{
   print();
}

interface bar
{
   print(in foo f);
}

So the client gets a reference to the servant interface (bar) and calls 
print providing a local implementation of foo.  While servicing the call, 
the server calls f.print().

I have a client and server working using C++ (TAO).
I'm trying to write a client using C to interact w/ the same C++ server.

If I don't start the ORB in the client (CORBA_ORB_run), the servant gets a 
TRANSIENT exception when it tries to call back into the provided foo 
interface (f).
If I do start the ORB in the client (in a separate thread), the call to 
the servant never returns to the client.  The servant never receives it, 
either.

Any ideas?

Jules Colding:  I noticed a post from you on 11 Jan 2005 Re: "Linking 
problem with servant implementation files" which posted an IDL example w/ 
the same semantics (ie. one interface's method took another interface as a 
param).  Did you implement a client for that example?

Regards,
Nick G.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]