00001 // Author: Wim Lavrijsen, Oct 2005 00002 00003 #ifndef PYROOT_TSETITEMHOLDER_H 00004 #define PYROOT_TSETITEMHOLDER_H 00005 00006 // ROOT 00007 class TClass; 00008 class TMethod; 00009 00010 // Bindings 00011 #include "MethodHolder.h" 00012 00013 00014 namespace PyROOT { 00015 00016 /** Special holder to allow byref return as extra argument 00017 @author WLAV 00018 @date 10/05/2003 00019 @version 2.0 00020 */ 00021 00022 class TExecutor; 00023 00024 template< class T, class M > 00025 class TSetItemHolder : public TMethodHolder< T, M > { 00026 public: 00027 TSetItemHolder( const T& klass, const M& method ); 00028 00029 public: 00030 virtual PyCallable* Clone() { return new TSetItemHolder( *this ); } 00031 00032 virtual PyObject* FilterArgs( ObjectProxy*& self, PyObject* args, PyObject* kwds ); 00033 00034 protected: 00035 virtual Bool_t InitExecutor_( TExecutor*& ); 00036 }; 00037 00038 } // namespace PyROOT 00039 00040 #endif // !PYROOT_TSETITEMHOLDER_H