AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
open_list_factory.h
1#ifndef OPEN_LIST_FACTORY_H
2#define OPEN_LIST_FACTORY_H
3
4#include "downward/open_list.h"
5
6#include <memory>
7
8class OpenListFactory {
9public:
10 OpenListFactory() = default;
11 virtual ~OpenListFactory() = default;
12
13 OpenListFactory(const OpenListFactory&) = delete;
14
15 virtual std::unique_ptr<StateOpenList> create_state_open_list() = 0;
16 virtual std::unique_ptr<EdgeOpenList> create_edge_open_list() = 0;
17
18 /*
19 The following template receives manual specializations (in the
20 cc file) for the open list types we want to support. It is
21 intended for templatized callers, e.g. the constructor of
22 AlternationOpenList.
23 */
24 template <typename T>
25 std::unique_ptr<OpenList<T>> create_open_list();
26};
27
28#endif