On Monday 07 February 2011 07:07:42 Sylvain Meunier wrote:
> Le 04/02/2011 11:43, Sylvain Meunier a écrit :
> > Le 03/02/2011 19:44, Hugo Parente Lima a écrit :
> >> On Thursday 03 February 2011 16:29:59 Anderson Lizardo wrote:
> >>> On Thu, Feb 3, 2011 at 12:13 PM, Hugo Parente Lima
> >>> 
> >>> <hugo.l...@openbossa.org>  wrote:
> >>>> On Thursday 03 February 2011 12:54:50 Sylvain Meunier wrote:
> >>>>> Hello,
> >>>>> 
> >>>>> What is the usual way for binding method templates ?
> >>>> 
> >>>> There's no simple way, sometimes it's possible some times not because
> >>>> we can't instantiate those template methods at runtime. So you need
> >>>> to analyze the semantics of the method and write some kind of code
> >>>> injection to do the hard task of connect the world of compile time
> >>>> stuff (C++ templates) to the world of run time stuff (Python).
> >>>> 
> >>>> As an example you could see our implementation of
> >>>> qmlRegisterType<T>[1] or QObject::findChildren to have an idea.
> >>> 
> >>> I wonder if this could be made automatic by extending apiextractor to
> >>> parse templates as well? or does it already parse templates and one
> >>> could extend the generator?
> >>> 
> >>> Of course, it would not work in 100% cases, but it would be nice if we
> >>> could have some typesystem support for simple templates which would
> >>> not require manual inject code.
> >> 
> >> It isn't a parser problem, it's a "can't generate C++ code at runtime
> >> problem"
> >> 
> >> :-P
> >> 
> >> C++ knows everything at compile time, but when we are generating the
> >> bindings we don't know what types the python user will use to call
> >> Foo::bar<T>  method.
> >> 
> >> For some cases we can do workarounds like creating a C++ type and using
> >> it in the function call every time the python user calls the bar
> >> function with a Python type, for other cases it is a bit harder, btw
> >> you can take as hard example the qRegisterMetaType function that isn't
> >> binded yet in PySide because it requires a non trivial workaround.
> >> 
> >>> My two BRL cents :)
> >> 
> > I follow Anderson Lizardo on this point. Instantiating some templates
> > adding one line in a type system could be really helpful.
> > 
> For illustrating my previous point, a very mechanical code injection for
> binding this method template :
> 
> [snip]
> 
> There is no runtime problem in this case, all the required types are
> available at compilation time.

What if I want to create my own property manager in Python?

e.g.:

class GeoCoordsPropManager(object):
    # ...

?
 How do I use them with your binding for the template-function?

-- 
Hugo Parente Lima
INdT - Instituto Nokia de Tecnologia

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
PySide mailing list
PySide@lists.openbossa.org
http://lists.openbossa.org/listinfo/pyside

Reply via email to