openMSX
CliExtension.cc
Go to the documentation of this file.
1#include "CliExtension.hh"
3#include "HardwareConfig.hh"
4#include "MSXMotherBoard.hh"
5#include "MSXException.hh"
6#include <cassert>
7
8namespace openmsx {
9
11 : cmdLineParser(cmdLineParser_)
12{
13 cmdLineParser.registerOption("-ext", *this);
14 cmdLineParser.registerOption("-exta", *this);
15 cmdLineParser.registerOption("-extb", *this);
16 cmdLineParser.registerOption("-extc", *this);
17 cmdLineParser.registerOption("-extd", *this);
18}
19
20void CliExtension::parseOption(const std::string& option, std::span<std::string>& cmdLine)
21{
22 try {
23 std::string extensionName = getArgument(option, cmdLine);
24 MSXMotherBoard* motherboard = cmdLineParser.getMotherBoard();
25 assert(motherboard);
26 std::string slotName;
27 if (option.size() == 5) {
28 slotName = option[4];
29 } else {
30 slotName = "any";
31 }
32 motherboard->insertExtension(extensionName,
33 motherboard->loadExtension(extensionName, slotName));
34 } catch (MSXException& e) {
35 throw FatalError(std::move(e).getMessage());
36 }
37}
38
39std::string_view CliExtension::optionHelp() const
40{
41 return "Insert the extension specified in argument";
42}
43
44} // namespace openmsx
static std::string getArgument(const std::string &option, std::span< std::string > &cmdLine)
Definition: CLIOption.cc:9
CliExtension(CommandLineParser &cmdLineParser)
Definition: CliExtension.cc:10
std::string_view optionHelp() const override
Definition: CliExtension.cc:39
void parseOption(const std::string &option, std::span< std::string > &cmdLine) override
Definition: CliExtension.cc:20
void registerOption(const char *str, CLIOption &cliOption, ParsePhase phase=PHASE_LAST, unsigned length=2)
MSXMotherBoard * getMotherBoard() const
std::unique_ptr< HardwareConfig > loadExtension(std::string_view extensionName, std::string_view slotName)
std::string insertExtension(std::string_view name, std::unique_ptr< HardwareConfig > extension)
constexpr double e
Definition: Math.hh:21
This file implemented 3 utility functions:
Definition: Autofire.cc:9