Horizon
ipool.hpp
1 #pragma once
2 #include <string>
3 #include <set>
4 
5 namespace horizon {
6 class UUID;
7 
8 namespace SQLite {
9 class Database;
10 }
11 
12 class IPool {
13 public:
14  virtual const class Unit *get_unit(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
15  virtual const class Entity *get_entity(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
16  virtual const class Symbol *get_symbol(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
17  virtual const class Padstack *get_padstack(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
18  virtual const class Padstack *get_well_known_padstack(const std::string &name, UUID *pool_uuid_out = nullptr) = 0;
19  virtual const class Package *get_package(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
20  virtual const class Part *get_part(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
21  virtual const class Frame *get_frame(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
22  virtual const class Decal *get_decal(const UUID &uu, UUID *pool_uuid_out = nullptr) = 0;
23  virtual SQLite::Database &get_db() = 0;
24  virtual const std::string &get_base_path() const = 0;
25 
26  virtual std::string get_model_filename(const UUID &pkg_uuid, const UUID &model_uuid) = 0;
27  virtual std::set<UUID> get_alternate_packages(const UUID &uu) = 0;
28 
29  virtual void clear() = 0;
30 
31  virtual ~IPool()
32  {
33  }
34 };
35 } // namespace horizon
horizon::SQLite::Database
Definition: sqlite.hpp:63
horizon::Decal
Definition: decal.hpp:16
horizon::Entity
Definition: entity.hpp:14
horizon::Symbol
Definition: symbol.hpp:71
horizon::Padstack
Definition: padstack.hpp:21
horizon::IPool
Definition: ipool.hpp:12
horizon::Frame
Definition: frame.hpp:21
horizon::Package
Definition: package.hpp:29
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
horizon::Unit
A Unit is the template for a Gate inside of an Entity.
Definition: unit.hpp:60
horizon::Part
Definition: part.hpp:14