2 #include "common/common.hpp" 3 #include "nlohmann/json_fwd.hpp" 4 #include "util/uuid.hpp" 5 #include "frame/frame.hpp" 11 #include "util/sqlite.hpp" 25 Pool(
const std::string &base_path,
bool read_only =
true);
26 const class Unit *get_unit(
const UUID &uu);
27 const class Entity *get_entity(
const UUID &uu);
28 const class Symbol *get_symbol(
const UUID &uu);
31 const class Part *get_part(
const UUID &uu);
32 const class Frame *get_frame(
const UUID &uu);
33 std::set<UUID> get_alternate_packages(
const UUID &uu);
34 virtual std::string get_model_filename(
const UUID &pkg_uuid,
const UUID &model_uuid);
36 virtual std::string get_filename(ObjectType type,
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
37 const std::string &get_base_path()
const;
49 std::string get_tmp_filename(ObjectType type,
const UUID &uu)
const;
50 static int get_required_schema_version();
54 std::string base_path;
55 std::string get_flat_filename(ObjectType type,
const UUID &uu)
const;
57 std::map<UUID, Unit> units;
58 std::map<UUID, Entity> entities;
59 std::map<UUID, Symbol> symbols;
60 std::map<UUID, Padstack> padstacks;
61 std::map<UUID, Package> packages;
62 std::map<UUID, Part> parts;
63 std::map<UUID, Frame> frames;
void clear()
Clears all lazy-loaded objects.
Definition: pool.cpp:25
SQLite::Database db
The database connection.
Definition: pool.hpp:42
Definition: sqlite.hpp:55
A Unit is the template for a Gate inside of an Entity.
Definition: unit.hpp:53
Definition: package.hpp:27
Definition: padstack.hpp:21
Definition: entity.hpp:13
Pool(const std::string &base_path, bool read_only=true)
Constructs a Pool.
Definition: pool.cpp:16
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
Definition: symbol.hpp:74
Stores objects (Unit, Entity, Symbol, Part, etc.) from the pool.
Definition: pool.hpp:19