3#include "block_symbol/block_symbol.hpp"
4#include "schematic/schematic.hpp"
5#include "iblock_symbol_and_schematic_provider.hpp"
10 class BlockItemSchematic :
public BlockItem {
12 BlockItemSchematic(
const BlockItemInfo &inf,
const std::string &base_path,
IPool &pool,
13 class BlocksSchematic &blocks);
14 BlockItemSchematic(
const UUID &uu,
const std::string &block_name);
17 BlockItemSchematic(
const UUID &uu,
const BlockItemInfo &inf,
const std::string &base_path,
IPool &pool,
18 class BlocksSchematic &blocks);
20 BlockItemSchematic(
const BlockItemInfo &inf,
const json &j_block,
const json &j_sym,
const json &j_sch,
21 IPool &pool, BlocksSchematic &blocks);
28 BlocksSchematic(
const json &j,
const std::string &base_path,
IPool &pool);
29 static BlocksSchematic new_from_file(
const std::string &filename,
IPool &pool);
30 BlocksSchematic(
const BlocksSchematic &other);
32 std::map<UUID, BlockItemSchematic> blocks;
34 std::vector<const BlockItemSchematic *> get_blocks_sorted()
const;
41 Block &get_block(
const UUID &uu)
override;
42 std::map<UUID, Block *> get_blocks()
override;
43 Block &get_top_block()
override;
46 json serialize()
const;
Definition block_symbol.hpp:51
A block is one level of hierarchy in the netlist.
Definition block.hpp:29
Definition blocks_schematic.hpp:10
Definition iblock_provider.hpp:5
Definition iblock_symbol_and_schematic_provider.hpp:6
A Schematic is the visual representation of a Block.
Definition schematic.hpp:29
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16