00001 00025 #ifndef _PROP_LOGIC_EVENT_H_ 00026 #define _PROP_LOGIC_EVENT_H_ 00027 00028 #include <string> 00029 #include <map> 00030 00031 #include <predicate_manager/event.h> 00032 #include <predicate_manager/prop_logic.h> 00033 00034 namespace predicate_manager 00035 { 00039 class PropLogicEvent : public Event 00040 { 00041 public: 00047 PropLogicEvent ( const std::string& name, 00048 const PropLogic& pl ); 00049 00056 PropLogicEvent ( 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 bool val_; 00074 }; 00075 } 00076 00077 #endif