symbolic
parameter_generator.h
1 
10 #ifndef SYMBOLIC_UTILS_PARAMETER_GENERATOR_H_
11 #define SYMBOLIC_UTILS_PARAMETER_GENERATOR_H_
12 
13 #include <unordered_map> // std::unordered_map
14 #include <vector> // std::vector
15 
16 #include "symbolic/object.h"
17 #include "symbolic/utils/combination_generator.h"
18 
19 namespace symbolic {
20 
22  : public CombinationGenerator<const std::vector<Object>> {
23  public:
25  using ObjectTypeMap = std::unordered_map<std::string, std::vector<Object>>;
26 
27  ParameterGenerator() = default;
28  ~ParameterGenerator() override = default;
29 
30  ParameterGenerator(const Pddl& pddl,
31  const std::vector<Object>& params);
32 
34  ParameterGenerator(ParameterGenerator&& other) noexcept;
35  ParameterGenerator& operator=(const ParameterGenerator& rhs);
36  ParameterGenerator& operator=(ParameterGenerator&& rhs) noexcept;
37 
38  const Pddl& pddl() const { return *pddl_; }
39 
40  private:
41  const Pddl* pddl_ = nullptr;
42 
43  // Store parameter types for portability
44  std::vector<std::vector<Object>> param_types_;
45 };
46 
47 } // namespace symbolic
48 
49 #endif // SYMBOLIC_UTILS_PARAMETER_GENERATOR_H_
symbolic
Definition: action.cc:329
symbolic::Pddl
Definition: pddl.h:40
symbolic::ParameterGenerator
Definition: parameter_generator.h:21
symbolic::CombinationGenerator
Definition: combination_generator.h:35