QCommand.hh

Go to the documentation of this file.
00001 
00002 #ifndef _QCOMMAND_HH_
00003 #define _QCOMMAND_HH_
00004 
00005 #include <string>
00006 #include <map>
00007 #include <list>
00008 
00009 #include "QCuore.hh"
00010 
00011 class QError;
00012 
00022 class QCommand
00023 {
00024 public:
00025         
00027   QCommand();
00028 
00030   virtual ~QCommand();
00031 
00036    bool IsValid() const { return !fHasError; }
00037    
00039    const std::map<std::string, std::list<std::string> >& GetAnswerMap() const
00040    { return fAnswerMap; }
00041 
00051    virtual void Execute() = 0;
00052    
00062    virtual void CheckParams() = 0;
00063    
00064 protected:
00065 
00067    const std::string& GetModifier() const { return fModifier; }
00068 
00070    void SetError (const QError& err);
00071    
00081    bool GetBool(const std::string& name, bool& val) const;
00082 
00089    bool GetBoolList(const std::string& name, std::list<bool>& values) const;
00090 
00100    bool GetInt(const std::string& name, int& val) const;
00101 
00108    bool GetIntList(const std::string& name, std::list<int>& values) const;
00109 
00119    bool GetDouble(const std::string& name, double& val) const;
00120    
00127    bool GetDoubleList(const std::string& name,
00128                       std::list<double>& values) const;
00129 
00139    bool GetString(const std::string& name, std::string& val) const;
00140 
00147    bool GetStringList(const std::string& name,
00148                       std::list<std::string>& values) const;
00149 
00151    bool   IsParamDefined (const std::string& name) const;
00152       
00154    const std::map<std::string, std::list<std::string> >& GetParMap() const
00155    { return fParamMap; }
00156 
00157    
00167    bool AddBoolToAnswer(const std::string& parName, bool val);
00168 
00174    bool AddIntToAnswer(const std::string& parName, int val);
00175 
00181    bool AddDoubleToAnswer(const std::string& parName, double val);
00182 
00188    bool AddStringToAnswer(const std::string& parName,
00189                           const std::string& val);
00190 
00199    bool AddToAnswer(const std::string& parName,
00200                     const std::list<std::string>& values);
00201 
00203    bool SetSuccess() { return AddBoolToAnswer("success", true); }
00204 
00205 private:
00206 
00207    std::string fModifier; 
00208    bool fHasError;        
00211    std::map <std::string, std::list<std::string> > fParamMap;
00212 
00218    std::map <std::string, std::list<std::string> > fAnswerMap;
00219 
00221    void Reset();
00222 
00224    void SetModifier(const std::string& mod) { fModifier = mod; }
00225    
00232    void SetParams(const std::map<std::string, std::list<std::string> >& parMap)
00233    { fParamMap = parMap; }
00234    
00235    friend class QBaseCmdParser;
00236 };
00237 #endif

Generated on Tue Nov 16 10:49:59 2010 for CUORE Software by  doxygen 1.5.6