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"
13 #include "util/item_set.hpp"
30 static Block new_from_file(
const std::string &filename,
IPool &pool);
31 static std::map<std::string, std::string> peek_project_meta(
const std::string &filename);
35 std::map<UUID, Net> nets;
36 std::map<UUID, Bus> buses;
37 std::map<UUID, Component> components;
38 std::map<UUID, NetClass> net_classes;
41 std::map<UUID, std::string> group_names;
42 std::map<UUID, std::string> tag_names;
43 std::map<std::string, std::string> project_meta;
44 std::string get_group_name(
const UUID &uu)
const;
45 std::string get_tag_name(
const UUID &uu)
const;
48 std::map<const class Part *, BOMRow> get_BOM(
const BOMExportSettings &settings)
const;
50 bool can_swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2)
const;
51 void swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2);
54 void operator=(
const Block &block);
56 void merge_nets(
Net *net,
Net *into);
62 void vacuum_group_tag_names();
71 void update_connection_count();
73 void update_diffpairs();
81 std::string get_net_name(
const UUID &uu)
const;
83 ItemSet get_pool_items_used()
const;
Definition: bom_export_settings.hpp:11
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26
Net * insert_net()
creates new net
Definition: block.cpp:131
Net * extract_pins(const std::set< UUIDPath< 3 >> &pins, Net *net=nullptr)
Takes pins specified by pins and moves them over to net.
Definition: block.cpp:283
void vacuum_nets()
deletes unreferenced nets
Definition: block.cpp:170
Stores a sequence of up to 3 UUIDs.
Definition: uuid_path.hpp:13
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
Definition: uuid_ptr.hpp:8
a class to store JSON values
Definition: json.hpp:166
basic_json<> json
default JSON class
Definition: json_fwd.hpp:61