00001 #ifndef actasp_ExecutionObserver_h__guard 00002 #define actasp_ExecutionObserver_h__guard 00003 00004 #include <actasp/AspRule.h> 00005 00006 #include <vector> 00007 00008 namespace actasp { 00009 00010 class AspFluent; 00011 class AnswerSet; 00012 class PartialPolicy; 00013 00014 struct ExecutionObserver { 00015 00016 virtual void actionStarted(const AspFluent& action) throw() =0 ; 00017 virtual void actionTerminated(const AspFluent& action) throw() =0; 00018 00019 virtual void goalChanged(std::vector<actasp::AspRule> newGoalRules) throw() = 0; 00020 00021 //TODO move this into a separate observer 00022 virtual void policyChanged(PartialPolicy* policy) throw() = 0; 00023 00024 virtual ~ExecutionObserver() {} 00025 }; 00026 00027 } 00028 00029 00030 #endif