2#include "nlohmann/json_fwd.hpp"
3#include "block/block.hpp"
4#include "iblock_provider.hpp"
5#include "util/file_version.hpp"
17 std::string block_filename;
18 std::string symbol_filename;
19 std::string schematic_filename;
21 json serialize()
const;
24 BlockItemInfo(
const UUID &uu,
const std::string &b,
const std::string &y,
const std::string &c);
40 BlockItem(
const UUID &uu,
const std::string &b,
const std::string &y,
const std::string &c);
44 static std::map<std::string, std::string> peek_project_meta(
const std::string &filename);
45 static std::vector<std::string> peek_filenames(
const std::string &filename);
47 std::string base_path;
51 static unsigned int get_app_version();
58 std::vector<BlockItemInfo> blocks_sorted_from_json(
const json &j)
const;
59 json serialize_base()
const;
65 static Blocks new_from_file(
const std::string &filename,
IPool &pool);
68 std::map<UUID, BlockItem> blocks;
71 const BlockItem &get_top_block_item()
const;
73 Block &get_block(
const UUID &uu)
override;
74 std::map<UUID, Block *> get_blocks()
override;
75 Block &get_top_block()
override;
76 json serialize()
const;
A block is one level of hierarchy in the netlist.
Definition block.hpp:29
Definition file_version.hpp:9
Definition iblock_provider.hpp:5
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16
a class to store JSON values
Definition json.hpp:177
basic_json<> json
default JSON class
Definition json_fwd.hpp:62