8 #include "../../odbdesign_export.h"
9 #include "LayerDirectory.h"
10 #include "EdaDataFile.h"
11 #include "NetlistFile.h"
12 #include "../../IProtoBuffable.h"
13 #include "../../ProtoBuf/stepdirectory.pb.h"
14 #include "ComponentsFile.h"
15 #include "AttrListFile.h"
16 #include "StepHdrFile.h"
17 #include "../ISaveable.h"
18 #include "FeaturesFile.h"
21 namespace Odb::Lib::FileModel::Design
29 std::string GetName();
30 std::filesystem::path GetPath();
33 const LayerDirectory::StringMap& GetLayersByName()
const;
34 const NetlistFile::StringMap& GetNetlistsByName()
const;
44 bool Save(
const std::filesystem::path& directory)
override;
46 typedef std::map<std::string, std::shared_ptr<StepDirectory>> StringMap;
49 std::unique_ptr<Odb::Lib::Protobuf::StepDirectory> to_protobuf()
const override;
50 void from_protobuf(
const Odb::Lib::Protobuf::StepDirectory& message)
override;
54 std::filesystem::path m_path;
56 LayerDirectory::StringMap m_layersByName;
57 NetlistFile::StringMap m_netlistsByName;
63 bool ParseLayerFiles(std::filesystem::path layersPath);
64 bool ParseNetlistFiles(std::filesystem::path netlistsPath);
65 bool ParseEdaDataFiles(std::filesystem::path edaPath);
66 bool ParseAttrListFile(std::filesystem::path attrListFileDirectory);
67 bool ParseProfileFile(std::filesystem::path profileFileDirectory);
68 bool ParseStepHdrFile(std::filesystem::path stepHdrFileDirectory);
70 constexpr
inline static const char* PROFILE_FILENAME =
"profile";