CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/CommonTools/Utils/src/MethodSetter.h

Go to the documentation of this file.
00001 #ifndef CommonTools_Utils_MethodSetter_h
00002 #define CommonTools_Utils_MethodSetter_h
00003 /* \class reco::parser::MethodSetter
00004  *
00005  * \author Luca Lista, INFN
00006  *
00007  * \version $Id: MethodSetter.h,v 1.4 2012/06/26 21:13:13 wmtan Exp $
00008  */
00009 #include "CommonTools/Utils/src/MethodStack.h"
00010 #include "CommonTools/Utils/src/TypeStack.h"
00011 #include "CommonTools/Utils/src/MethodArgumentStack.h"
00012 
00013 namespace reco {
00014   namespace parser {
00015     struct MethodSetter {
00016       explicit MethodSetter(MethodStack & methStack, LazyMethodStack & lazyMethStack, TypeStack & typeStack,
00017                             MethodArgumentStack & intStack, bool lazy=false) : 
00018         methStack_(methStack), lazyMethStack_(lazyMethStack), typeStack_(typeStack),
00019         intStack_(intStack), lazy_(lazy) { }
00020       void operator()(const char *, const char *) const;
00034       bool push(const std::string&, const std::vector<AnyMethodArgument>&,const char*,bool deep=true) const;
00035     private:
00036       MethodStack & methStack_;
00037       LazyMethodStack & lazyMethStack_;
00038       TypeStack & typeStack_;
00039       MethodArgumentStack & intStack_;
00040       bool lazy_;
00041     };
00042   }
00043 }
00044 
00045 #endif