Re: CORBA question



Andrew Clausen writes:
 > Isn't the name server implemented with CORBA interfaces, not sockets?  The
 > orbit-name-server doesn't appear to use sockets.  So you need the IOR of the
 > name-server.  I assume you have to do that by using popen on orbit-name-server,
 > and reading the stdout for the IOR.  This seems a bit messy.

Activation of the gnome_name_server is handled inside libgnorba:

CORBA_Object name_server = gnome_name_server_get();
 
See gnome-libs/libgnorna/orbitgtk.c for details on how the name server
is started and where its IOR is kept afterwards.

My understanding of the CORBA standard is that the name server should 
be included within the initial references. However, ORBit/src/orb.c 
does not try to activate the name server at the moment.

 > I noticed CORBA_ORB_resolve_initial_references.  The ORBit/test/test program
 > lists all services in this, and the InterfaceRepository is in it.  If a server
 > registers itself in the IR, then a client can look it up.  Given an objec
 > reference to a "Contained" corresponding to the interface, how can you create
 > an instance of the interface, or retrieve an existing one?

The RespositoryId is sometimes used as a mechanism for converting an
InterfaceDef in the interface repository into a object reference
which then provides a connection to a server for that interface when 
you start accessing the object's operations.

You can convert RepositoryIds into object references using libgnorba:

CORBA_Object object = goad_server_activate_with_repo_id (NULL, repo_id, 0);

In mico this conversion is made possible using an extension to 
the ORB interface. The ORBit sources continue to include commented
out code that uses this mico extension. Someone may be in the course
of adding it into ORBit.

AFAIK, you can access any server in gnome using this approach.
There are alternative approaches based on goad server_ids but 
AFAIK there is a one to one mapping from repo_ids to server_ids.

Felix




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