3 #ifndef PYROOT_TEMPLATEPROXY_H
4 #define PYROOT_TEMPLATEPROXY_H
26 void Set(
const std::string& name, PyObject* pyclass );
33 MethodProxy* fNonTemplated;
34 MethodProxy* fTemplated;
37 void AddOverload( MethodProxy* mp );
38 void AddOverload( PyCallable* pc );
39 void AddTemplate( PyCallable* pc );
47 R__EXTERN PyTypeObject TemplateProxy_Type;
49 template<
typename T >
50 inline Bool_t TemplateProxy_Check( T*
object )
52 return object && PyObject_TypeCheck(
object, &TemplateProxy_Type );
55 template<
typename T >
56 inline Bool_t TemplateProxy_CheckExact( T*
object )
58 return object && Py_TYPE(
object) == &TemplateProxy_Type;
62 inline TemplateProxy* TemplateProxy_New(
const std::string& name, PyObject* pyclass )
65 TemplateProxy* pytmpl = (TemplateProxy*)TemplateProxy_Type.tp_new( &TemplateProxy_Type, 0, 0 );
66 pytmpl->Set( name, pyclass );
72 #endif // !PYROOT_TEMPLATEPROXY_H