swift
settings.h
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #ifndef SWIFT_MISC_XSWIFTBUS_CSETTINGS_H
5 #define SWIFT_MISC_XSWIFTBUS_CSETTINGS_H
6 
7 #include <mutex>
8 #include <string>
9 
10 #include "config.h"
11 #include "misc/simulation/settings/xswiftbussettingsqtfree.h"
12 
13 namespace XSwiftBus
14 {
19  {
20  public:
22  CSettings();
23 
24  protected:
26  virtual void objectUpdated() override final {}
27  };
28 
31  {
32  public:
36  CSettings getSettings() const;
37 
41  void setSettings(const CSettings &settings);
42 
44  virtual const CConfig &getConfig() const = 0;
45 
47  virtual bool writeConfig(bool tcas, bool debug) = 0;
48 
49  protected:
51  ~CSettingsProvider() = default;
52 
53  private:
54  mutable std::mutex m_settingsMutex;
55  CSettings m_pluginSettings;
56  };
57 
60  {
61  protected:
64 
66  ~CSettingsAware() = default;
67 
69  CSettings getSettings() const;
70 
72  void setSettings(const CSettings &settings);
73 
75  const CConfig &getConfig() const;
76 
78  bool writeConfig(bool tcas, bool debug);
79 
80  private:
81  CSettingsProvider *m_provider = nullptr;
82  };
83 } // namespace XSwiftBus
84 
85 #endif // SWIFT_MISC_XSWIFTBUS_CSETTINGS_H
xswiftbus configuration class
Definition: config.h:15
Something having access to the settings.
Definition: settings.h:60
CSettingsAware(CSettingsProvider *provider)
Constructor.
Definition: settings.cpp:31
void setSettings(const CSettings &settings)
Set settings.
Definition: settings.cpp:38
~CSettingsAware()=default
Destructor.
const CConfig & getConfig() const
Get settings from xswiftbus.conf (needed during plugin initialization)
Definition: settings.cpp:40
CSettings getSettings() const
Get settings.
Definition: settings.cpp:36
bool writeConfig(bool tcas, bool debug)
Write a config file with these new values.
Definition: settings.cpp:42
xswiftbus/swift side settings class, JSON capable, shared among all services
Definition: settings.h:19
CSettings()
Constructor.
Definition: settings.cpp:14
virtual void objectUpdated() final
Object has been updated.
Definition: settings.h:26
Something owning the settings.
Definition: settings.h:31
CSettings getSettings() const
Get settings.
Definition: settings.cpp:19
void setSettings(const CSettings &settings)
Set settings.
Definition: settings.cpp:25
virtual bool writeConfig(bool tcas, bool debug)=0
Write a config file with these new values.
virtual const CConfig & getConfig() const =0
Get settings from xswiftbus.conf (needed during plugin initialization)
~CSettingsProvider()=default
Destructor.
xswiftbus/swift side settings class, JSON capable, shared among all services
Plugin loaded by X-Plane which publishes a DBus service.
Definition: command.h:14