[omniORB] DSI and interface inheritance

Tom Kelly thomas.kelly@queens.oxford.ac.uk
Tue, 27 Jul 1999 19:44:43 +0100 (BST)


I have a problem with interface inheritance and DSI in omniORB

Consider the following idl files:
A.idl:
interface A{
  // Some operations
};

B.idl
#include "A.idl"
interface B: A{
 // some more operations
};

Now if I have a DSI implementation of B, I register it with:
CORBA::Object_ptr obj = 
		boa->create_dynamic_object(new DynImp_B,"IDL:B:1.0");

When clients that can only see the A interface attempt to use this object
they cannot narrow it to an A; the client makes a GIOP _is_a request and
the server does not recognise that B is derived from A. 

How then do you create dynamic objects that support the base and inherited
interface at the same time? (indeed how do you support two interfaces on
the same dynamic object?) 

Thanks,
Tom