using ORBit_small_listen_for_broken() with bonobo objects

Ben Liblit <[email protected]> Mon, 12 Jul 2004 00:10:44 -0700
Newsgroups gmane.comp.gnome.components
Message-ID <[email protected]>
I have a fairly simple server implemented as a Bonobo factory.  Each 
client causes the factory to create one instance of a trivial 
BonoboObject subclass.  The factory uses 
bonobo_running_context_auto_exit_unref() to exit when the last client 
shuts down.  This works fine when clients exit properly, but not when 
clients die abruptly, e.g. by crashing.

It seems that ORBit_small_listen_for_broken() is the thing to use here. 
  But I don't see how to hook that up properly:

Given an instance of a BonoboObject subclass, how do I obtain the 
corresponding CORBA_Object to use in the call to 
ORBit_small_listen_for_broken()?  Is that even a meaningful thing to ask 
for, or is the BonoboObject/CORBA_Object relationship more subtle?

Suppose ORBit_small_listen_for_broken() calls me back, and tells me that 
a connection has indeed been broken.  What should I do with the 
BonoboObject instance in the server?  How do I inform this instance (and 
its factory) that it should go away?  Do I use bonobo_object_unref(), 
bonobo_object_release_unref(), ... ?

Thank you for your help!