Horizon
Loading...
Searching...
No Matches
pool_manager.hpp
1#pragma once
2#include "util/uuid.hpp"
3#include <map>
4#include <sigc++/sigc++.h>
5#include <vector>
6#include "pool_info.hpp"
7
8namespace horizon {
9
10class PoolManagerPool : public PoolInfo {
11public:
12 using PoolInfo::PoolInfo;
13 bool enabled = false;
14};
15
17public:
19 static PoolManager &get();
20 static void init();
21 std::string get_pool_base_path(const UUID &uu);
22 void set_pool_enabled(const std::string &base_path, bool enabled);
23 bool get_pool_enabled(const std::string &base_path) const;
24 void add_pool(const std::string &base_path);
25 void remove_pool(const std::string &base_path);
26 void update_pool(const std::string &base_path);
27 const std::map<std::string, PoolManagerPool> &get_pools() const;
28 const PoolManagerPool *get_by_uuid(const UUID &uu) const;
29 const PoolManagerPool *get_for_file(const std::string &filename) const;
30 bool reload();
31
32 typedef sigc::signal<void> type_signal_written;
33 type_signal_written signal_written()
34 {
35 return s_signal_written;
36 }
37
38private:
39 std::map<std::string, PoolManagerPool> pools;
40 void set_pool_enabled_no_write(const std::string &base_path, bool enabled);
41 void write();
42
43 type_signal_written s_signal_written;
44};
45} // namespace horizon
Definition pool_info.hpp:11
Definition pool_manager.hpp:10
Definition pool_manager.hpp:16
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16