10 #ifndef SYMBOLIC_PLANNING_PLANNER_H_
11 #define SYMBOLIC_PLANNING_PLANNER_H_
17 #include "symbolic/pddl.h"
28 class reverse_iterator;
33 std::string&& action);
35 const std::string& action()
const;
36 const State& state()
const;
44 explicit operator bool()
const;
47 bool operator<(
const Node& rhs)
const;
48 bool operator==(
const Node& rhs)
const;
50 friend std::ostream& operator<<(std::ostream& os,
54 NodeImpl* operator->() {
return impl_.get(); }
55 const NodeImpl* operator->()
const {
return impl_.get(); }
57 std::shared_ptr<NodeImpl> impl_;
80 : root_(pddl, pddl.ConsistentState(state)) {}
82 const Node& root()
const {
return root_; }
90 using iterator_category = std::input_iterator_tag;
92 using difference_type = ptrdiff_t;
100 bool operator==(
const iterator& other)
const;
101 bool operator!=(
const iterator& other)
const {
return !(*
this == other); }
102 reference operator*()
const {
return child_; }
110 std::vector<Action>::const_iterator it_action_;
111 ParameterGenerator::const_iterator it_param_;
127 #endif // SYMBOLIC_PLANNING_PLANNER_H_