CMS 3D CMS Logo

MethodInvoker.h

Go to the documentation of this file.
00001 #ifndef PhysicsTools_Utilities_MethodInvoker_h
00002 #define PhysicsTools_Utilities_MethodInvoker_h
00003 #include "Reflex/Object.h"
00004 #include "Reflex/Member.h"
00005 #include "PhysicsTools/Utilities/src/AnyMethodArgument.h"
00006 #include <vector>
00007 
00008 namespace reco {
00009   namespace parser {
00010 
00011     struct MethodInvoker {
00012       explicit MethodInvoker(const ROOT::Reflex::Member & method,
00013                              const std::vector<AnyMethodArgument>    & ints   = std::vector<AnyMethodArgument>() );
00014       MethodInvoker(const MethodInvoker &); 
00016       std::pair<ROOT::Reflex::Object,bool> value(const ROOT::Reflex::Object & o) const;
00017       const ROOT::Reflex::Member & method() const { return method_; }
00018       MethodInvoker & operator=(const MethodInvoker &);
00019     private:
00020       ROOT::Reflex::Member method_;
00021       std::vector<AnyMethodArgument> ints_; // already fixed to the correct type
00022       std::vector<void*> args_;
00023       bool isFunction_;
00024       void setArgs();
00025     };
00026   }
00027 }
00028 
00029 #endif

Generated on Tue Jun 9 17:42:52 2009 for CMSSW by  doxygen 1.5.4