3 #include "../FileModel/Design/FileArchive.h"
4 #include "../ProductModel/Design.h"
5 #include "../odbdesign_export.h"
6 #include "StringVector.h"
12 namespace Odb::Lib::App
20 std::shared_ptr<ProductModel::Design> GetDesign(
const std::string& designName);
21 std::shared_ptr<FileModel::Design::FileArchive> GetFileArchive(
const std::string& designName);
23 void AddFileArchive(
const std::string& designName, std::shared_ptr<FileModel::Design::FileArchive> fileArchive,
bool save);
25 bool SaveFileArchive(
const std::string& designName);
27 std::vector<std::string> getLoadedDesignNames(
const std::string& filter =
"")
const;
28 std::vector<std::string> getLoadedFileArchiveNames(
const std::string& filter =
"")
const;
29 std::vector<std::string> getUnloadedDesignNames(
const std::string& filter =
"")
const;
31 int loadAllFileArchives(
bool stopOnError);
32 int loadAllDesigns(
bool stopOnError);
33 int loadFileArchives(
const Utils::StringVector& names);
34 int loadDesigns(
const Utils::StringVector& names);
36 void setDirectory(
const std::string& directory);
37 const std::string& getDirectory()
const;
42 std::string m_directory;
44 FileModel::Design::FileArchive::StringMap m_fileArchivesByName;
45 ProductModel::Design::StringMap m_designsByName;
47 std::shared_ptr<ProductModel::Design> LoadDesign(
const std::string& designName);
48 std::shared_ptr<FileModel::Design::FileArchive> LoadFileArchive(
const std::string& designName);
50 constexpr
inline static const char* DESIGN_EXTENSIONS[] = {
"zip",
"tgz",
"tar.gz",
"tar",
"gzip" ,
"gz" };