pddl_planner
PDDLPlannerInterface.hpp
Go to the documentation of this file.
1 #ifndef PDDL_PLANNER_INTERFACE_H
2 #define PDDL_PLANNER_INTERFACE_H
3 
4 #include <pddl_planner/PDDLPlannerTypes.hpp>
5 #include <list>
6 
7 namespace pddl_planner
8 {
10  {
11  public:
12  virtual ~PDDLPlannerInterface() {}
13 
19  virtual bool isAvailable() const;
20 
26  void cleanup(const std::string & dir, const std::list<std::string> & files);
27 
33  PlanCandidates generateCandidates(const std::string & cmd, const std::string & tempDir, const std::string & resultFilename, const std::list<std::string> & patternList, double timeout, const std::string & planner = "");
34 
35 
41  Plan readPlan(const std::string& plannerName, const std::string& filename);
42 
48  virtual std::string getName() const { throw PlanGenerationException("PDDLPlannerInterface getName method not implemented"); }
49 
55  virtual std::string getCmd() const { throw PlanGenerationException("PDDLPlannerInterface getCmd method not implemented"); }
56 
62  virtual int getVersion() const { throw PlanGenerationException("PDDLPlannerInterface getVersion method not implemented"); }
63 
69  virtual PlanCandidates plan(const std::string& problem, const std::string& actions, const std::string& domain, double timeout) { throw PlanGenerationException("Plan method not implemented"); }
70 
71  protected:
75  void prepare(const std::string& problem, const std::string& actionDescriptions, const std::string& domainDescriptions);
76 
77  double mTimeout;
78  std::string mTempDir;
79  std::string mDomainFilename;
80  std::string mProblemFilename;
81  std::string mResultFilename;
82 
83  std::string msResultFileBasename;
84  const static std::string msProblemFileBasename;
85  const static std::string msDomainFileBasename;
86  const static std::string msTempDirBasename;
87 
89  };
90 
91 }
92 #endif // PDDL_PLANNER_INTERFACE_H
Definition: PDDLPlannerTypes.hpp:49
virtual int getVersion() const
Definition: PDDLPlannerInterface.hpp:62
std::string mResultFilename
Definition: PDDLPlannerInterface.hpp:81
static const std::string msProblemFileBasename
Definition: PDDLPlannerInterface.hpp:84
PlanCandidates generateCandidates(const std::string &cmd, const std::string &tempDir, const std::string &resultFilename, const std::list< std::string > &patternList, double timeout, const std::string &planner="")
Definition: PDDLPlannerInterface.cpp:86
virtual bool isAvailable() const
Definition: PDDLPlannerInterface.cpp:25
std::string mDomainFilename
Definition: PDDLPlannerInterface.hpp:79
virtual std::string getName() const
Definition: PDDLPlannerInterface.hpp:48
virtual ~PDDLPlannerInterface()
Definition: PDDLPlannerInterface.hpp:12
std::string msResultFileBasename
Definition: PDDLPlannerInterface.hpp:83
static const std::string msTempDirBasename
Definition: PDDLPlannerInterface.hpp:86
void cleanup(const std::string &dir, const std::list< std::string > &files)
Definition: PDDLPlannerInterface.cpp:31
Definition: PDDLPlannerInterface.cpp:18
static const std::string msDomainFileBasename
Definition: PDDLPlannerInterface.hpp:85
Definition: PDDLPlannerTypes.hpp:66
std::string mTempDir
Definition: PDDLPlannerInterface.hpp:78
Plan mPlan
Definition: PDDLPlannerInterface.hpp:88
virtual PlanCandidates plan(const std::string &problem, const std::string &actions, const std::string &domain, double timeout)
Definition: PDDLPlannerInterface.hpp:69
Definition: PDDLPlannerInterface.hpp:9
void prepare(const std::string &problem, const std::string &actionDescriptions, const std::string &domainDescriptions)
Definition: PDDLPlannerInterface.cpp:65
std::string mProblemFilename
Definition: PDDLPlannerInterface.hpp:80
Definition: PDDLPlannerTypes.hpp:12
virtual std::string getCmd() const
Definition: PDDLPlannerInterface.hpp:55
double mTimeout
Definition: PDDLPlannerInterface.hpp:77
Plan readPlan(const std::string &plannerName, const std::string &filename)
Definition: PDDLPlannerInterface.cpp:154