[omniORB] pass object/interface to other interface failing.. am I dense?

Diez B. Roggisch deets at web.de
Sun Jul 3 20:59:15 BST 2005


Hi,

let's assume I've got an idl like this

module test {


   interface Foo {
     void bar();
   };

   typedef sequence<Foo> seq_foo;
   interface FooManager {
     seq_foo all_foos();
     void remove_foo(in Foo f);

   };
};

Now if I implement a client that does something like this:

manager = get_me_a_foo_manager()
for foo in manager.all_foos():
     manager.remove(foo)

I get an error

BAD_PARAM: Minor: BAD_PARAM_WrongPythonType, COMPLETED_NO.

Why is that? So far I've come around example code (e.g. tictactoe) where 
  the client creates a servant itself, activates it and then passes it's 
id to the server. But how do I pass a server-owned object back? I'm 
somewhat lost here, any suggestions appreciated,


BTW: I could of course define a remove() (and probably will do that in 
the meantime) on Foo and call that - but I'd still like to know if and 
how my scheme above could be made to work.


Regards,

Diez



More information about the omniORB-list mailing list