Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef SUNDANCE_WATCHFLAG_H
00032 #define SUNDANCE_WATCHFLAG_H
00033
00034 #include "SundanceDefs.hpp"
00035 #include "SundanceMap.hpp"
00036 #include "Teuchos_XMLObject.hpp"
00037 #include "Teuchos_ParameterList.hpp"
00038 #include <string>
00039
00040
00041
00042 namespace Sundance
00043 {
00044 using Teuchos::ParameterList;
00045
00046
00047
00048
00049 class WatchFlag
00050 {
00051 public:
00052
00053 WatchFlag(const std::string& name="",
00054 const ParameterList& params = *defaultParams());
00055
00056
00057 const std::string& name() const {return name_;}
00058
00059
00060 void activate() ;
00061
00062
00063 void deactivate() ;
00064
00065
00066 bool isActive() const ;
00067
00068
00069 bool operator<(const WatchFlag& other) const
00070 {return name() < other.name();}
00071
00072
00073 XMLObject toXML() const ;
00074
00075
00076 int param(const std::string& name) const ;
00077
00078
00079 void setParam(const std::string& name, int val);
00080
00081
00082 static RCP<ParameterList> defaultParams();
00083
00084
00085 private:
00086 std::string name_;
00087
00088 RCP<ParameterList> params_;
00089
00090 static Map<std::string, bool>& isActiveMap()
00091 {
00092 static Map<std::string, bool> rtn;
00093 return rtn;
00094 }
00095
00096 };
00097 }
00098
00099 #endif