CuteHMI - Modbus (CuteHMI.Modbus.2)
DummyClientConfig.hpp
1 #ifndef H_EXTENSIONS_CUTEHMI_MODBUS_2_INCLUDE_CUTEHMI_MODBUS_INTERNAL_DUMMYCLIENTCONFIG_HPP
2 #define H_EXTENSIONS_CUTEHMI_MODBUS_2_INCLUDE_CUTEHMI_MODBUS_INTERNAL_DUMMYCLIENTCONFIG_HPP
3 
4 #include "common.hpp"
5 
6 #include <QObject>
7 #include <QReadWriteLock>
8 
9 namespace cutehmi {
10 namespace modbus {
11 namespace internal {
12 
13 class CUTEHMI_MODBUS_PRIVATE DummyClientConfig:
14  public QObject
15 {
16  Q_OBJECT
17 
18  public:
19  static constexpr int INITIAL_OPEN_LATENCY = 1000;
20  static constexpr int INITIAL_CLOSE_LATENCY = 1000;
21  static constexpr int INITIAL_LATENCY = 1000;
22 
23  explicit DummyClientConfig(QObject * parent = nullptr);
24 
25  int openLatency() const;
26 
27  void setOpenLatency(int openLatency);
28 
29  int closeLatency() const;
30 
31  void setCloseLatency(int closeLatency);
32 
33  int latency() const;
34 
35  void setLatency(int latency);
36 
37  signals:
38  void configChanged();
39 
40  private:
41  struct Members
42  {
43  int openLatency = INITIAL_OPEN_LATENCY;
44  int closeLatency = INITIAL_CLOSE_LATENCY;
45  int latency = INITIAL_LATENCY;
46  mutable QReadWriteLock lock;
47  };
48 
49  MPtr<Members> m;
50 };
51 
52 }
53 }
54 }
55 
56 #endif
57 
58 //(c)C: Copyright © 2019, Michał Policht <michal@policht.pl>. All rights reserved.
59 //(c)C: This file is a part of CuteHMI.
60 //(c)C: CuteHMI is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
61 //(c)C: CuteHMI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
62 //(c)C: You should have received a copy of the GNU Lesser General Public License along with CuteHMI. If not, see <https://www.gnu.org/licenses/>.
cutehmi::MPtr< Members >
QObject
cutehmi
cutehmi::modbus::internal::DummyClientConfig
Definition: DummyClientConfig.hpp:13
std::internal
T internal(T... args)
QReadWriteLock