PyROOT::TMethodHolder< T, M > Class Template Reference

#include <MethodHolder.h>

Inheritance diagram for PyROOT::TMethodHolder< T, M >:

PyROOT::PyCallable PyROOT::TClassMethodHolder< T, M > PyROOT::TConstructorHolder< T, M > PyROOT::TFunctionHolder< T, M > PyROOT::TSetItemHolder< T, M > List of all members.

Public Member Functions

 TMethodHolder (const T &klass, const M &method)
 TMethodHolder (const TMethodHolder &)
TMethodHolderoperator= (const TMethodHolder &)
virtual ~TMethodHolder ()
virtual PyObjectGetSignature ()
virtual PyObjectGetPrototype ()
virtual Int_t GetPriority ()
virtual Int_t GetMaxArgs ()
virtual PyObjectGetArgSpec (Int_t iarg)
virtual PyObjectGetArgDefault (Int_t iarg)
virtual PyObjectGetScope ()
virtual PyCallableClone ()
virtual PyObjectoperator() (ObjectProxy *self, PyObject *args, PyObject *kwds, Long_t=0)
virtual Bool_t Initialize ()
virtual PyObjectFilterArgs (ObjectProxy *&self, PyObject *args, PyObject *kwds)
virtual Bool_t SetMethodArgs (PyObject *args, Long_t user)
virtual PyObjectExecute (void *self)

Protected Member Functions

const M & GetMethod ()
const TGetClass ()
TExecutorGetExecutor ()
const std::stringGetSignatureString ()
virtual Bool_t InitExecutor_ (TExecutor *&)

Private Member Functions

void Copy_ (const TMethodHolder &)
void Destroy_ () const
PyObjectCallFast (void *)
PyObjectCallSafe (void *)
Bool_t InitCallFunc_ ()
void CreateSignature_ ()
void SetPyError_ (PyObject *msg)

Private Attributes

fMethod
T fClass
G__CallFuncfMethodCall
TExecutorfExecutor
std::string fSignature
std::vector< TConverter * > fConverters
std::vector< TParameterfParameters
std::vector< void * > fParamPtrs
Int_t fArgsRequired
Long_t fOffset
Bool_t fIsInitialized

Detailed Description

template<class T, class M>
class PyROOT::TMethodHolder< T, M >

Definition at line 45 of file MethodHolder.h.


Constructor & Destructor Documentation

template<class T, class M>
PyROOT::TMethodHolder< T, M >::TMethodHolder ( const T klass,
const M &  method 
)

Definition at line 292 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fArgsRequired, PyROOT::TMethodHolder< T, M >::fExecutor, PyROOT::TMethodHolder< T, M >::fIsInitialized, PyROOT::TMethodHolder< T, M >::fMethodCall, PyROOT::TMethodHolder< T, M >::fOffset, and kFALSE.

Referenced by PyROOT::TMethodHolder< T, M >::Clone().

template<class T, class M>
PyROOT::TMethodHolder< T, M >::TMethodHolder ( const TMethodHolder< T, M > &   ) 

Definition at line 306 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::Copy_().

template<class T, class M>
PyROOT::TMethodHolder< T, M >::~TMethodHolder (  )  [virtual]

Definition at line 331 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::Destroy_().


Member Function Documentation

template<class T, class M>
PyROOT::TMethodHolder< T, M > & PyROOT::TMethodHolder< T, M >::operator= ( const TMethodHolder< T, M > &   ) 

Definition at line 315 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::Destroy_(), PyROOT::TMethodHolder< T, M >::fClass, and PyROOT::TMethodHolder< T, M >::fMethod.

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::GetSignature (  )  [virtual]

Implements PyROOT::PyCallable.

Definition at line 340 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::GetSignatureString(), and PyROOT_PyUnicode_FromString.

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::GetPrototype (  )  [virtual]

Implements PyROOT::PyCallable.

Definition at line 348 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fMethod, PyROOT::TMethodHolder< T, M >::GetSignatureString(), PyROOT_PyUnicode_FromFormat, ROOT::Reflex::Q, and ROOT::Reflex::S.

template<class T, class M>
Int_t PyROOT::TMethodHolder< T, M >::GetPriority (  )  [virtual]

Reimplemented from PyROOT::PyCallable.

Definition at line 369 of file MethodHolder.cxx.

References ROOT::Reflex::F, PyROOT::TMethodHolder< T, M >::fMethod, ROOT::Reflex::Q, size_t, and T.

template<class T, class M>
Int_t PyROOT::TMethodHolder< T, M >::GetMaxArgs (  )  [virtual]

Reimplemented from PyROOT::PyCallable.

Definition at line 429 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fMethod.

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::GetArgSpec ( Int_t  iarg  )  [virtual]

Reimplemented from PyROOT::PyCallable.

Definition at line 436 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fMethod, PyROOT_PyUnicode_FromString, and ROOT::Reflex::Q.

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::GetArgDefault ( Int_t  iarg  )  [virtual]

Reimplemented from PyROOT::PyCallable.

Definition at line 454 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fMethod, gRootModule, and PyROOT_PyUnicode_FromString.

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::GetScope (  )  [virtual]

Reimplemented from PyROOT::PyCallable.

Definition at line 478 of file MethodHolder.cxx.

References ROOT::Reflex::FINAL, PyROOT::TMethodHolder< T, M >::fMethod, and ROOT::Reflex::SCOPED.

template<class T, class M>
virtual PyCallable* PyROOT::TMethodHolder< T, M >::Clone (  )  [inline, virtual]

Implements PyROOT::PyCallable.

Definition at line 62 of file MethodHolder.h.

References PyROOT::TMethodHolder< T, M >::TMethodHolder().

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::operator() ( ObjectProxy self,
PyObject args,
PyObject kwds,
Long_t  = 0 
) [virtual]

Implements PyROOT::PyCallable.

Definition at line 646 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::Execute(), PyROOT::TMethodHolder< T, M >::FilterArgs(), PyROOT::TMethodHolder< T, M >::fOffset, TClass::GetClassInfo(), PyROOT::ObjectProxy::GetObject(), PyROOT::TMethodHolder< T, M >::Initialize(), kFALSE, object, PyROOT::ObjectProxy::ObjectIsA(), PyROOT::ObjectProxy_Check(), PyROOT::TMethodHolder< T, M >::SetMethodArgs(), Cint::G__ClassInfo::Tagnum(), and PyROOT::TPyExceptionMagic.

template<class T, class M>
Bool_t PyROOT::TMethodHolder< T, M >::Initialize (  )  [virtual]

Definition at line 486 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fArgsRequired, PyROOT::TMethodHolder< T, M >::fExecutor, PyROOT::TMethodHolder< T, M >::fIsInitialized, PyROOT::TMethodHolder< T, M >::fMethod, PyROOT::TMethodHolder< T, M >::InitCallFunc_(), PyROOT::TMethodHolder< T, M >::InitExecutor_(), kFALSE, and kTRUE.

Referenced by PyROOT::TMethodHolder< T, M >::operator()().

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::FilterArgs ( ObjectProxy *&  self,
PyObject args,
PyObject kwds 
) [virtual]

Definition at line 509 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fClass, PyROOT::TMethodHolder< T, M >::fMethod, TClass::GetBaseClass(), PyROOT::ObjectProxy::ObjectIsA(), PyROOT::ObjectProxy_Check(), PyROOT_PyUnicode_FromFormat, and PyROOT::TMethodHolder< T, M >::SetPyError_().

Referenced by PyROOT::TMethodHolder< T, M >::operator()().

template<class T, class M>
Bool_t PyROOT::TMethodHolder< T, M >::SetMethodArgs ( PyObject args,
Long_t  user 
) [virtual]

Definition at line 544 of file MethodHolder.cxx.

References argc, PyROOT::TMethodHolder< T, M >::fArgsRequired, PyROOT::TMethodHolder< T, M >::fConverters, PyROOT::TMethodHolder< T, M >::fMethodCall, PyROOT::TMethodHolder< T, M >::fParameters, PyROOT::TMethodHolder< T, M >::fParamPtrs, i, kFALSE, kTRUE, PyROOT_PyUnicode_FromFormat, Cint::G__CallFunc::ResetArg(), and PyROOT::TMethodHolder< T, M >::SetPyError_().

Referenced by PyROOT::TMethodHolder< T, M >::operator()(), and PyROOT::TFunctionHolder< T, M >::operator()().

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::Execute ( void *  self  )  [virtual]

Definition at line 614 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::CallFast(), PyROOT::TMethodHolder< T, M >::CallSafe(), g, G__get_return, G__RETURN_NORMAL, gCINTMutex, PyROOT::Utility::gSignalPolicy, PyROOT::Utility::kFast, PyROOT::Utility::PyErr_Occurred_WithGIL(), R__LOCKGUARD2, result(), and PyROOT::TPyExceptionMagic.

Referenced by PyROOT::TMethodHolder< T, M >::operator()(), PyROOT::TClassMethodHolder< T, M >::operator()(), and PyROOT::TFunctionHolder< T, M >::operator()().

template<class T, class M>
const M& PyROOT::TMethodHolder< T, M >::GetMethod (  )  [inline, protected]

Definition at line 73 of file MethodHolder.h.

References PyROOT::TMethodHolder< T, M >::fMethod.

Referenced by PyROOT::TConstructorHolder< T, M >::GetDocString().

template<class T, class M>
const T& PyROOT::TMethodHolder< T, M >::GetClass (  )  [inline, protected]

Definition at line 74 of file MethodHolder.h.

References PyROOT::TMethodHolder< T, M >::fClass.

Referenced by PyROOT::TConstructorHolder< T, M >::GetDocString().

template<class T, class M>
TExecutor* PyROOT::TMethodHolder< T, M >::GetExecutor (  )  [inline, protected]

Definition at line 75 of file MethodHolder.h.

References PyROOT::TMethodHolder< T, M >::fExecutor.

template<class T, class M>
const std::string & PyROOT::TMethodHolder< T, M >::GetSignatureString (  )  [protected]

Definition at line 250 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::CreateSignature_(), and PyROOT::TMethodHolder< T, M >::fSignature.

Referenced by PyROOT::TConstructorHolder< T, M >::GetDocString(), PyROOT::TMethodHolder< T, M >::GetPrototype(), and PyROOT::TMethodHolder< T, M >::GetSignature().

template<class T, class M>
Bool_t PyROOT::TMethodHolder< T, M >::InitExecutor_ ( TExecutor *&   )  [protected, virtual]

Definition at line 207 of file MethodHolder.cxx.

References PyROOT::CreateExecutor(), ROOT::Reflex::F, PyROOT::TMethodHolder< T, M >::fClass, PyROOT::TMethodHolder< T, M >::fMethod, kFALSE, kTRUE, ROOT::Reflex::Q, and ROOT::Reflex::S.

Referenced by PyROOT::TMethodHolder< T, M >::Initialize().

template<class T, class M>
void PyROOT::TMethodHolder< T, M >::Copy_ ( const TMethodHolder< T, M > &   )  [inline, private]

Definition at line 55 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fArgsRequired, PyROOT::TMethodHolder< T, M >::fExecutor, PyROOT::TMethodHolder< T, M >::fIsInitialized, PyROOT::TMethodHolder< T, M >::fMethodCall, PyROOT::TMethodHolder< T, M >::fOffset, PyROOT::TMethodHolder< T, M >::fSignature, and kFALSE.

Referenced by PyROOT::TMethodHolder< T, M >::operator=(), and PyROOT::TMethodHolder< T, M >::TMethodHolder().

template<class T, class M>
void PyROOT::TMethodHolder< T, M >::Destroy_ (  )  const [inline, private]

Definition at line 72 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fConverters, PyROOT::TMethodHolder< T, M >::fExecutor, PyROOT::TMethodHolder< T, M >::fMethodCall, i, and int.

Referenced by PyROOT::TMethodHolder< T, M >::operator=(), and PyROOT::TMethodHolder< T, M >::~TMethodHolder().

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::CallFast ( void *   )  [inline, private]

Definition at line 86 of file MethodHolder.cxx.

References PyROOT::TExecutor::Execute(), PyROOT::TMethodHolder< T, M >::fExecutor, PyROOT::TMethodHolder< T, M >::fMethodCall, PyROOT::TMethodHolder< T, M >::fOffset, result(), and PyROOT::TPyExceptionMagic.

Referenced by PyROOT::TMethodHolder< T, M >::CallSafe(), and PyROOT::TMethodHolder< T, M >::Execute().

template<class T, class M>
PyObject * PyROOT::TMethodHolder< T, M >::CallSafe ( void *   )  [inline, private]

Definition at line 110 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::CallFast(), CATCH, ENDTRY, result(), Throw(), and TRY.

Referenced by PyROOT::TMethodHolder< T, M >::Execute().

template<class T, class M>
Bool_t PyROOT::TMethodHolder< T, M >::InitCallFunc_ (  )  [private]

Definition at line 161 of file MethodHolder.cxx.

References PyROOT::CreateConverter(), PyROOT::TMethodHolder< T, M >::fClass, PyROOT::TMethodHolder< T, M >::fConverters, PyROOT::TMethodHolder< T, M >::fMethod, PyROOT::TMethodHolder< T, M >::fMethodCall, PyROOT::TMethodHolder< T, M >::fOffset, PyROOT::TMethodHolder< T, M >::fParameters, PyROOT::TMethodHolder< T, M >::fParamPtrs, GetGlobalNamespaceInfo(), Cint::G__ClassInfo::GetMethod(), Cint::G__CallFunc::Init(), kFALSE, kTRUE, ROOT::Reflex::QUALIFIED, ROOT::Reflex::SCOPED, Cint::G__CallFunc::SetFunc(), and size_t.

Referenced by PyROOT::TMethodHolder< T, M >::Initialize().

template<class T, class M>
void PyROOT::TMethodHolder< T, M >::CreateSignature_ (  )  [private]

Definition at line 221 of file MethodHolder.cxx.

References PyROOT::TMethodHolder< T, M >::fMethod, PyROOT::TMethodHolder< T, M >::fSignature, ROOT::Reflex::QUALIFIED, and size_t.

Referenced by PyROOT::TMethodHolder< T, M >::GetSignatureString().

template<class T, class M>
void PyROOT::TMethodHolder< T, M >::SetPyError_ ( PyObject msg  )  [private]

Definition at line 261 of file MethodHolder.cxx.

References PyROOT::PyCallable::GetDocString(), PyROOT_PyUnicode_AsString, and s.

Referenced by PyROOT::TMethodHolder< T, M >::FilterArgs(), and PyROOT::TMethodHolder< T, M >::SetMethodArgs().


Member Data Documentation

template<class T, class M>
M PyROOT::TMethodHolder< T, M >::fMethod [private]

Definition at line 94 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::CreateSignature_(), PyROOT::TMethodHolder< T, M >::FilterArgs(), PyROOT::TMethodHolder< T, M >::GetArgDefault(), PyROOT::TMethodHolder< T, M >::GetArgSpec(), PyROOT::TMethodHolder< T, M >::GetMaxArgs(), PyROOT::TMethodHolder< T, M >::GetMethod(), PyROOT::TMethodHolder< T, M >::GetPriority(), PyROOT::TMethodHolder< T, M >::GetPrototype(), PyROOT::TMethodHolder< T, M >::GetScope(), PyROOT::TMethodHolder< T, M >::InitCallFunc_(), PyROOT::TMethodHolder< T, M >::InitExecutor_(), PyROOT::TMethodHolder< T, M >::Initialize(), and PyROOT::TMethodHolder< T, M >::operator=().

template<class T, class M>
T PyROOT::TMethodHolder< T, M >::fClass [private]

Definition at line 95 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::FilterArgs(), PyROOT::TMethodHolder< T, M >::GetClass(), PyROOT::TMethodHolder< T, M >::InitCallFunc_(), PyROOT::TMethodHolder< T, M >::InitExecutor_(), and PyROOT::TMethodHolder< T, M >::operator=().

template<class T, class M>
G__CallFunc* PyROOT::TMethodHolder< T, M >::fMethodCall [private]

Definition at line 96 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::CallFast(), PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::Destroy_(), PyROOT::TMethodHolder< T, M >::InitCallFunc_(), PyROOT::TMethodHolder< T, M >::SetMethodArgs(), and PyROOT::TMethodHolder< T, M >::TMethodHolder().

template<class T, class M>
TExecutor* PyROOT::TMethodHolder< T, M >::fExecutor [private]

Definition at line 97 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::CallFast(), PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::Destroy_(), PyROOT::TMethodHolder< T, M >::GetExecutor(), PyROOT::TMethodHolder< T, M >::Initialize(), and PyROOT::TMethodHolder< T, M >::TMethodHolder().

template<class T, class M>
std::string PyROOT::TMethodHolder< T, M >::fSignature [private]

Definition at line 99 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::CreateSignature_(), and PyROOT::TMethodHolder< T, M >::GetSignatureString().

template<class T, class M>
std::vector< TConverter* > PyROOT::TMethodHolder< T, M >::fConverters [private]

Definition at line 102 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::Destroy_(), PyROOT::TMethodHolder< T, M >::InitCallFunc_(), and PyROOT::TMethodHolder< T, M >::SetMethodArgs().

template<class T, class M>
std::vector< TParameter > PyROOT::TMethodHolder< T, M >::fParameters [private]

Definition at line 104 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::InitCallFunc_(), and PyROOT::TMethodHolder< T, M >::SetMethodArgs().

template<class T, class M>
std::vector< void* > PyROOT::TMethodHolder< T, M >::fParamPtrs [private]

Definition at line 105 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::InitCallFunc_(), and PyROOT::TMethodHolder< T, M >::SetMethodArgs().

template<class T, class M>
Int_t PyROOT::TMethodHolder< T, M >::fArgsRequired [private]

Definition at line 108 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::Initialize(), PyROOT::TMethodHolder< T, M >::SetMethodArgs(), and PyROOT::TMethodHolder< T, M >::TMethodHolder().

template<class T, class M>
Long_t PyROOT::TMethodHolder< T, M >::fOffset [private]

Definition at line 109 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::CallFast(), PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::InitCallFunc_(), PyROOT::TMethodHolder< T, M >::operator()(), and PyROOT::TMethodHolder< T, M >::TMethodHolder().

template<class T, class M>
Bool_t PyROOT::TMethodHolder< T, M >::fIsInitialized [private]

Definition at line 112 of file MethodHolder.h.

Referenced by PyROOT::TMethodHolder< T, M >::Copy_(), PyROOT::TMethodHolder< T, M >::Initialize(), and PyROOT::TMethodHolder< T, M >::TMethodHolder().


The documentation for this class was generated from the following files:
Generated on Tue Jul 5 16:56:31 2011 for ROOT_528-00b_version by  doxygen 1.5.1