16#include "Reflection.h"
22typedef std::vector<Option> ConfigOptions;
26 const static ConfigOptions options;
30 virtual ~Configurable() =
default;
33 virtual const ConfigOptions &getOptions()
const {
return options; }
36 bool isValidOption(Option opt)
const;
39 virtual i64 getOption(Option opt)
const {
return 0; }
42 virtual i64 getFallback(Option opt)
const {
return 0; }
45 virtual void checkOption(Option opt, i64 value) { }
46 void checkOption(Option opt,
const string &value);
47 void checkOption(
const string &opt,
const string &value);
50 virtual void setOption(Option opt, i64 value) { }
51 void setOption(Option opt,
const string &value);
52 void setOption(
const string &opt,
const string &value);
55 void resetConfig(
const Defaults &defaults, isize objid = 0);
58 void dumpConfig(std::ostream& os)
const;
61 string keyList() {
return OptionEnum::keyList([&](Option i) {
return isValidOption(i); }); }
62 string argList() {
return OptionEnum::argList([&](Option i) {
return isValidOption(i); }); }
VirtualC64 project namespace.
Definition CmdQueue.cpp:16