00001 00025 #ifndef _PROP_LOGIC_PREDICATE_H_ 00026 #define _PROP_LOGIC_PREDICATE_H_ 00027 00028 #include <string> 00029 #include <map> 00030 00031 #include <predicate_manager/predicate.h> 00032 #include <predicate_manager/prop_logic.h> 00033 00034 namespace predicate_manager 00035 { 00039 class PropLogicPredicate : public Predicate 00040 { 00041 public: 00047 PropLogicPredicate ( const std::string& name, 00048 const PropLogic& pl ); 00049 00056 PropLogicPredicate ( const std::string& name ); 00057 00059 void update(); 00060 00062 void bindPropLogic ( const PropLogic& pl ); 00063 00064 private: 00066 bool evaluate ( const NameID& dep_name_id ); 00067 00069 void declareAllDependencies(); 00070 00071 boost::shared_ptr<PropLogic> prop_logic_; 00072 }; 00073 } 00074 00075 #endif