Go to the documentation of this file.00001 #ifndef actasp_QueryGenerator_h__guard
00002 #define actasp_QueryGenerator_h__guard
00003
00004 #include <actasp/AspRule.h>
00005
00006 #include <list>
00007 #include <vector>
00008 #include <string>
00009 #include <set>
00010
00011 namespace actasp {
00012
00013 class AnswerSet;
00014 class AspFluent;
00015 class AspAtom;
00016
00017 struct QueryGenerator {
00018
00019 virtual std::list<actasp::AnswerSet> minimalPlanQuery(const std::vector<actasp::AspRule>& goalRules,
00020 bool filterActions,
00021 unsigned int max_plan_length,
00022 unsigned int answerset_number) const throw() = 0;
00023
00024 virtual std::list<actasp::AnswerSet> lengthRangePlanQuery(const std::vector<actasp::AspRule>& goalRules,
00025 bool filterActions,
00026 unsigned int min_plan_length,
00027 unsigned int max_plan_length,
00028 unsigned int answerset_number) const throw() = 0;
00029
00030 virtual actasp::AnswerSet optimalPlanQuery(const std::vector<actasp::AspRule>& goalRules,
00031 bool filterActions,
00032 unsigned int max_plan_length,
00033 unsigned int answerset_number,
00034 bool minimum) const throw() = 0;
00035
00036 virtual std::list<actasp::AnswerSet> monitorQuery(const std::vector<actasp::AspRule>& goalRules,
00037 const AnswerSet& plan) const throw() = 0;
00038
00039
00040 virtual AnswerSet currentStateQuery(const std::vector<actasp::AspRule>& query) const throw() = 0;
00041
00042 virtual void setCurrentState(const std::set<actasp::AspFluent>& newState) = 0;
00043
00044
00045 virtual std::list<actasp::AnswerSet> genericQuery(const std::vector<actasp::AspRule>& query,
00046 unsigned int timestep,
00047 const std::string& fileName,
00048 unsigned int answerSetsNumber) const throw() = 0;
00049
00050 virtual std::list< std::list<AspAtom> > genericQuery(const std::string& query,
00051 unsigned int timestep,
00052 const std::string& fileName,
00053 unsigned int answerSetsNumber) const throw() = 0;
00054
00055 };
00056
00057 }
00058
00059
00060 #endif