Magnus Therning wrote:

2. (This relates to the NameResolve example) I couldn't get
CORBA.ORB_init() to accept sys.argv (and hence I couldn't register a
name-service with -ORBInitRef NameService=IOR:... on the command
line. I probably made some trivial mistake. Any pointers?


This was a bug that has been fixed in CVS. But I don't think there has been a release since then.

3. (This relates to the Factory example) With interfaces like this:

    module M {
     interface IA { .. };
     interface IB { IA createA(); };
    };

   and Python classes like this:

    class myIA(M__POA):
     ...

    class myIB(M__POA):
     ...

   then myIB.createA() can't be naively implemented like this:

    def createA(self):
     return myIA()

but has to
1. create, and keep an instance of myIA alive


You need to keep a reference to the implementing object because CORBA references (remote and local) don't count in Python's reference counting/garbage collection mechanisms.

2. return that instance's _this()


The CORBA spec says something like you can't assume that the implementing instance is suitable for calling methods on. You have to do things through a stub. I seem to recall reading there are some pretty important reasons for this relating to the POA, but I can't remember what they are right now.


-- Bowie Owens

CSIRO Mathematical & Information Sciences
phone  : +61 3 9545 8055
fax    : +61 3 9545 8080
mobile : 0425 729 875
email  : [EMAIL PROTECTED]


_______________________________________________ pygtk mailing list [EMAIL PROTECTED] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to