2 #include "common/common.hpp"
3 #include "nlohmann/json_fwd.hpp"
4 #include "util/uuid.hpp"
5 #include "frame/frame.hpp"
7 #include "package/pad.hpp"
13 #include "util/sqlite.hpp"
27 Pool(
const std::string &base_path,
bool read_only =
true);
28 const class Unit *get_unit(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
29 const class Entity *get_entity(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
30 const class Symbol *get_symbol(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
31 const class Padstack *get_padstack(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
32 const class Padstack *get_well_known_padstack(
const std::string &name,
UUID *pool_uuid_out =
nullptr);
33 const class Package *get_package(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
34 const class Part *get_part(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
35 const class Frame *get_frame(
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
36 std::set<UUID> get_alternate_packages(
const UUID &uu);
37 virtual std::string get_model_filename(
const UUID &pkg_uuid,
const UUID &model_uuid);
39 virtual std::string get_filename(ObjectType type,
const UUID &uu,
UUID *pool_uuid_out =
nullptr);
40 const std::string &get_base_path()
const;
52 std::string get_tmp_filename(ObjectType type,
const UUID &uu)
const;
53 static int get_required_schema_version();
57 std::string base_path;
58 std::string get_flat_filename(ObjectType type,
const UUID &uu)
const;
60 std::map<UUID, Unit> units;
61 std::map<UUID, Entity> entities;
62 std::map<UUID, Symbol> symbols;
63 std::map<UUID, Padstack> padstacks;
64 std::map<UUID, Package> packages;
65 std::map<UUID, Part> parts;
66 std::map<UUID, Frame> frames;
67 std::map<std::pair<ObjectType, UUID>,
UUID> pool_uuid_cache;
68 void get_pool_uuid(ObjectType type,
const UUID &uu,
UUID *pool_uuid_out);