#include #include #include "LoadFilesCommand.h" #include "Deserializer.h" #include "Exception.h" #include "FileReader.h" #include "FileStrategy.h" #include "MuseumPauseCommand.h" #include "Parser.h" using namespace std; void LoadFilesCommand::execute(int argc, char ** argv) { vector files = {}; for (size_t i = 0; i < argc; i++) { files.push_back(string(argv[i])); } return this->execute(files); } void LoadFilesCommand::execute(vector files) { try { this->load_files(files); } catch (Exception & e) { throw Exception("LoadFilesCommand error: %s", e.what()); } } void LoadFilesCommand::load_files(vector files) { MuseumPauseCommand(this).set(true); Deserializer deserializer { this->get_museum() }; for (string url : files) { unique_ptr file = FileReader::open(url); try { Parser::parse(*file, deserializer); } catch (Exception & e) { throw Exception("parser error: %s (%s)", e.what(), url.c_str()); } } }