[IronPython] inheriting from "base" generic type
Ronnie Maor
ronnie.maor at gmail.com
Mon Mar 17 08:25:13 CET 2008
Hi Dino,
asked you about this at pycon. posting it here per our discussion to help
track it.
I understand it's not high on your priority list (and shouldn't be,
considering the other stuff there)
details:
have a python class (simplified here) that is a wrapper over an event:
class Future(object):
def set(self,val) # set from one thread
def get(self) # blocking until set. returns the value set.
I exposed the class to C# code through a template interface:
interface IFuture<T>
void set(T val)
T get()
the interaction in our case is that C# calls python, which returns a future,
which C# then waits on:
interface MyPythonSubsystem:
IFuture<int> get_an_int()
Ideally I'd say that Future implements IFuture<T> for any T, by having
Future inherit from IFuture in python. I hoped this would mean IronPython
would accept my Future object when I returned it from the python
implementation of get_an_int().
Unfortunately, this isn't possible, and I could only inherit from IFuture[T]
for some specific T.
Ended up writing a simple function at the boundary between the subsystems
which gets T as an argument, and constructs an adapter that inherits from
IFuture<T> and proxies to an underlying Future object. It works fine for our
case, but less than pretty :-(
anyway, hope this helps document/track it
Ronnie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080317/28ca399e/attachment.html>
More information about the Ironpython-users
mailing list