34 static std::map<std::string, std::string> peek_project_meta(
const std::string &filename);
35 static std::set<UUID> peek_instantiated_blocks(
const std::string &filename);
39 std::map<UUID, Net> nets;
40 std::map<UUID, NetTie> net_ties;
41 std::map<UUID, Bus> buses;
42 std::map<UUID, Component> components;
43 std::map<UUID, BlockInstance> block_instances;
44 std::map<UUID, NetClass> net_classes;
47 std::map<UUIDVec, BlockInstanceMapping> block_instance_mappings;
49 std::map<UUID, std::string> group_names;
50 std::map<UUID, std::string> tag_names;
51 std::map<std::string, std::string> project_meta;
52 std::string get_group_name(
const UUID &uu)
const;
53 std::string get_tag_name(
const UUID &uu)
const;
56 std::map<const class Part *, BOMRow> get_BOM(
const BOMExportSettings &settings)
const;
58 bool can_swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2)
const;
59 void swap_gates(
const UUID &comp,
const UUID &g1,
const UUID &g2);
62 void operator=(
const Block &block);
64 void merge_nets(
Net *net,
Net *into);
70 void vacuum_group_tag_names();
78 std::set<UUIDPath<3>> pins;
79 std::set<UUIDPath<2>> ports;
83 void update_connection_count();
85 void update_diffpairs();
93 std::string get_net_name(
const UUID &uu)
const;
95 ItemSet get_pool_items_used()
const;
97 void update_non_top(
Block &other)
const;
99 void create_instance_mappings();
101 Block flatten()
const;
103 UUID get_uuid()
const;
106 std::string get_refdes(
const Component &comp,
const UUIDVec &instance_path)
const;
107 void set_refdes(
Component &comp,
const UUIDVec &instance_path,
const std::string &rd);
108 void set_nopopulate(
Component &comp,
const UUIDVec &instance_path,
bool nopopulate);
111 BlockItem(make_const_ref_t<c, Block> b,
const UUIDVec &p) : block(b), instance_path(p)
114 make_const_ref_t<c, Block> block;
115 UUIDVec instance_path;
118 std::vector<BlockItem<false>> get_instantiated_blocks();
119 std::vector<BlockItem<true>> get_instantiated_blocks()
const;
120 std::vector<BlockItem<false>> get_instantiated_blocks_and_top();
121 std::vector<BlockItem<true>> get_instantiated_blocks_and_top()
const;
123 std::string instance_path_to_string(
const UUIDVec &instance_path)
const;
125 bool can_delete_power_net(
const UUID &uu)
const;
127 bool can_add_block_instance(
const UUID &where,
const UUID &block_inst)
const;
129 json serialize()
const;
131 static const size_t max_instance_path_len;
132 static bool instance_path_too_long(
const UUIDVec &path,
const char *funcname);
136 std::vector<BlockItem<false>> get_instantiated_blocks(
bool inc_top);
137 std::vector<BlockItem<true>> get_instantiated_blocks(
bool inc_top)
const;