-
Notifications
You must be signed in to change notification settings - Fork 0
/
htn_problem.hpp
42 lines (31 loc) · 1.13 KB
/
htn_problem.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef HTN_PROBLEM_HPP__
#define HTN_PROBLEM_HPP__
class HtnProblem
{
public:
static HtnProblem * FromShop( const std::tr1::shared_ptr< HtnDomain > & p_pDomain,
std::stringstream & p_sInput );
static HtnProblem * FromPddl( const std::tr1::shared_ptr< HtnDomain > & p_pDomain,
std::stringstream & p_sInput );
HtnProblem( const HtnProblem & p_Other );
virtual ~HtnProblem();
std::string ToPddl() const;
const State * GetCState() const;
HtnTaskHeadP GetCTopTask() const;
unsigned int GetNumOutstandingTasks() const;
bool Equivalent( const HtnProblem & p_Other ) const;
const std::tr1::shared_ptr< HtnDomain > & GetDomain() const;
HtnTaskHeadP GetTask( unsigned int p_iIndex ) const;
const std::string & GetName() const;
long GetRequirements() const;
virtual size_t GetMemSizeMin() const;
virtual size_t GetMemSizeMax() const;
protected:
HtnProblem( const std::tr1::shared_ptr< HtnDomain > & p_pDomain );
const std::tr1::shared_ptr< HtnDomain > m_pDomain;
State * m_pState;
std::vector< HtnTaskHeadP > m_vOutstandingTasks;
std::string m_sProbName;
long m_iRequirements;
};
#endif//HTN_PROBLEM_HPP__