00001
00002
00003
00004
00005 #include "PyROOT.h"
00006 #include "ClassMethodHolder.h"
00007 #include "Adapters.h"
00008
00009
00010
00011 template< class T, class M >
00012 PyROOT::TClassMethodHolder< T, M >::TClassMethodHolder( const T& klass, const M& method ) :
00013 TMethodHolder< T, M >( klass, method )
00014 {
00015 }
00016
00017
00018
00019 template< class T, class M >
00020 PyObject* PyROOT::TClassMethodHolder< T, M >::operator()(
00021 ObjectProxy*, PyObject* args, PyObject* kwds, Long_t user )
00022 {
00023
00024 if ( kwds != 0 && PyDict_Size( kwds ) ) {
00025 PyErr_SetString( PyExc_TypeError, "keyword arguments are not yet supported" );
00026 return 0;
00027 }
00028
00029
00030 if ( ! this->Initialize() )
00031 return 0;
00032
00033
00034 if ( ! this->SetMethodArgs( args, user ) )
00035 return 0;
00036
00037
00038 return this->Execute( 0 );
00039 }
00040
00041
00042 template class PyROOT::TClassMethodHolder< PyROOT::TScopeAdapter, PyROOT::TMemberAdapter >;
00043 #ifdef PYROOT_USE_REFLEX
00044 template class PyROOT::TClassMethodHolder< ROOT::Reflex::Scope, ROOT::Reflex::Member >;
00045 #endif