4#include "DesignCache.h"
6#include "OdbDesignArgs.h"
7#include <google/protobuf/stubs/common.h>
11using namespace std::filesystem;
13namespace Odb::Lib::App
15 OdbAppBase::OdbAppBase(
int argc,
char* argv[])
16 : m_designCache(DEFAULT_DESIGNS_DIR)
17 , m_commandLineArgs(argc, argv)
19 GOOGLE_PROTOBUF_VERIFY_VERSION;
22 OdbAppBase::~OdbAppBase()
24 Logger::instance()->stop();
25 google::protobuf::ShutdownProtobufLibrary();
28 const OdbDesignArgs& OdbAppBase::args()
const
30 return m_commandLineArgs;
33 DesignCache& OdbAppBase::designs()
38 Utils::ExitCode OdbAppBase::Run()
41 Logger::instance()->logLevel(Logger::Level::Info);
42 Logger::instance()->start();
45 if (!args().designsDir().empty())
47 designs().setDirectory(args().designsDir());
51 if (!args().loadDesign().empty())
57 designs().GetFileArchive(args().loadDesign());
58 if (pFileArchive ==
nullptr)
60 logerror(
"Failed to load design specified in arguments \"" + args().loadDesign() +
"\"");
61 return Utils::ExitCode::FailedInitLoadDesign;
66 pFileArchive->SaveFileModel(
".",
"notused");
69 catch (filesystem_error& fe)
72 logerror(
"filesystem_error: \"" + args().loadDesign() +
"\" " + fe.what());
74 catch (std::exception& e)
77 logerror(
"Failed to load design specified in arguments \"" + args().loadDesign() +
"\"");
78 return Utils::ExitCode::FailedInitLoadDesign;
85 designs().loadAllDesigns(
false);
88 return Utils::ExitCode::Success;