Horizon
Loading...
Searching...
No Matches
ipool.hpp
1#pragma once
2#include <string>
3#include <set>
4#include <map>
5#include <memory>
6
7namespace horizon {
8class UUID;
9enum class ObjectType;
10
11namespace SQLite {
12class Database;
13}
14
15class IPool {
16public:
17 virtual std::shared_ptr<const class Unit> get_unit(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
18 virtual std::shared_ptr<const class Entity> get_entity(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
19 virtual std::shared_ptr<const class Symbol> get_symbol(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
20 virtual std::shared_ptr<const class Padstack> get_padstack(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
21 virtual std::shared_ptr<const class Padstack> get_well_known_padstack(const std::string &name,
22 UUID *pool_uuid_out = nullptr) = 0;
23 virtual std::shared_ptr<const class Package> get_package(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
24 virtual std::shared_ptr<const class Part> get_part(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
25 virtual std::shared_ptr<const class Frame> get_frame(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
26 virtual std::shared_ptr<const class Decal> get_decal(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
27 virtual SQLite::Database &get_db() = 0;
28 virtual const std::string &get_base_path() const = 0;
29
30 virtual std::string get_model_filename(const UUID &pkg_uuid, const UUID &model_uuid) = 0;
31 virtual std::set<UUID> get_alternate_packages(const UUID &uu) = 0;
32
33 virtual void clear() = 0;
34
35 virtual class PoolParametric *get_parametric() = 0;
36
37 virtual const class PoolInfo &get_pool_info() const = 0;
38
39 static const std::map<ObjectType, std::string> type_names;
40 virtual std::map<std::string, UUID> get_actually_included_pools(bool include_self) = 0;
41
42 virtual bool check_filename(ObjectType type, const std::string &filename,
43 std::string *error_msg = nullptr) const = 0;
44 virtual void check_filename_throw(ObjectType type, const std::string &filename) const = 0;
45
46 virtual ~IPool()
47 {
48 }
49};
50} // namespace horizon
Definition ipool.hpp:15
Definition pool_info.hpp:11
Definition pool_parametric.hpp:10
Definition sqlite.hpp:72
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16