openMSX
UserSettings.hh
Go to the documentation of this file.
1 #ifndef USERSETTINGS_HH
2 #define USERSETTINGS_HH
3 
4 #include "noncopyable.hh"
5 #include "string_ref.hh"
6 #include <vector>
7 #include <memory>
8 
9 namespace openmsx {
10 
11 class CommandController;
12 class UserSettingCommand;
13 class Setting;
14 
15 class UserSettings : private noncopyable
16 {
17 public:
18  typedef std::vector<std::unique_ptr<Setting>> Settings;
19 
20  explicit UserSettings(CommandController& commandController);
21  ~UserSettings();
22 
23  void addSetting(std::unique_ptr<Setting> setting);
24  void deleteSetting(Setting& setting);
25  Setting* findSetting(string_ref name) const;
26  const Settings& getSettings() const;
27 
28 private:
29  const std::unique_ptr<UserSettingCommand> userSettingCommand;
30  Settings settings;
31 };
32 
33 } // namespace openmsx
34 
35 #endif