3 #include "component.hpp"
4 #include "nlohmann/json_fwd.hpp"
6 #include "net_class.hpp"
7 #include "util/uuid.hpp"
8 #include "bom_export_settings.hpp"
27 Block(
const UUID &uu,
const json &,
class IPool &pool);
28 Block(
const UUID &uu);
29 static Block new_from_file(
const std::string &filename, IPool &pool);
30 static std::map<std::string, std::string> peek_project_meta(
const std::string &filename);
31 Net *get_net(
const UUID &uu);
34 std::map<UUID, Net> nets;
35 std::map<UUID, Bus> buses;
36 std::map<UUID, Component> components;
37 std::map<UUID, NetClass> net_classes;
38 uuid_ptr<NetClass> net_class_default =
nullptr;
40 std::map<UUID, std::string> group_names;
41 std::map<UUID, std::string> tag_names;
42 std::map<std::string, std::string> project_meta;
43 std::string get_group_name(
const UUID &uu)
const;
44 std::string get_tag_name(
const UUID &uu)
const;
46 BOMExportSettings bom_export_settings;
47 std::map<const class Part *, BOMRow> get_BOM(
const BOMExportSettings &settings)
const;
49 bool can_swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2)
const;
50 void swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2);
52 Block(
const Block &block);
53 void operator=(
const Block &block);
55 void merge_nets(Net *net, Net *into);
61 void vacuum_group_tag_names();
70 void update_connection_count();
72 void update_diffpairs();
80 std::string get_net_name(
const UUID &uu)
const;