CuteHMI - Shared Database (CuteHMI.SharedDatabase.0)
DatabaseDictionary.hpp
1 #ifndef H_EXTENSIONS_CUTEHMI_SHAREDDATABASE_0_SRC_CUTEHMI_SHAREDDATABASE_INTERNAL_DATABASEDICTIONARY_HPP
2 #define H_EXTENSIONS_CUTEHMI_SHAREDDATABASE_0_SRC_CUTEHMI_SHAREDDATABASE_INTERNAL_DATABASEDICTIONARY_HPP
3 
4 #include <cutehmi/Singleton.hpp>
5 
6 #include <QHash>
7 #include <QSet>
8 
9 class QThread;
10 
11 namespace cutehmi {
12 namespace shareddatabase {
13 namespace internal {
14 
16  public QObject,
17  public Singleton<DatabaseDictionary>
18 {
19  Q_OBJECT
20 
22 
23  public:
24  void associateThread(const QString & connectionName, QThread * associatedThread);
25 
26  int dissociateThread(const QString & connectionName);
27 
28  QThread * associatedThread(const QString & connectionName) const;
29 
30  void addConnected(const QString & connectionName);
31 
32  void removeConnected(const QString & connectionName);
33 
34  bool isConnected(const QString & connectionName) const;
35 
36  void addManaged(const QString & connectionName);
37 
38  void removeManaged(const QString & connectionName);
39 
40  bool isManaged(const QString & connectionName) const;
41 
42  protected:
44 
45  signals:
46  void threadChanged(QString connectionName);
47 
48  private:
52 
53  struct Members {
54  ThreadsContainer threads;
55  ConnectedContainer connected;
56  ManagedContainer managed;
57  };
58 
59  MPtr<Members> m;
60 };
61 
62 }
63 }
64 }
65 
66 #endif
67 
68 //(c)C: Copyright © 2020, Michał Policht <michal@policht.pl>. All rights reserved.
69 //(c)C: This file is a part of CuteHMI.
70 //(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.
71 //(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.
72 //(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/>.
QSet< QString >
cutehmi::shareddatabase::internal::DatabaseDictionary::addConnected
void addConnected(const QString &connectionName)
Definition: DatabaseDictionary.cpp:25
QThread
cutehmi::shareddatabase::internal::DatabaseDictionary::addManaged
void addManaged(const QString &connectionName)
Definition: DatabaseDictionary.cpp:40
cutehmi::shareddatabase::internal::DatabaseDictionary::dissociateThread
int dissociateThread(const QString &connectionName)
Definition: DatabaseDictionary.cpp:13
cutehmi::shareddatabase::internal::DatabaseDictionary
Definition: DatabaseDictionary.hpp:15
cutehmi::MPtr< Members >
QObject
cutehmi
QString
cutehmi::shareddatabase::internal::DatabaseDictionary::removeManaged
void removeManaged(const QString &connectionName)
Definition: DatabaseDictionary.cpp:45
cutehmi::shareddatabase::internal::DatabaseDictionary::isConnected
bool isConnected(const QString &connectionName) const
Definition: DatabaseDictionary.cpp:35
cutehmi::shareddatabase::internal::DatabaseDictionary::removeConnected
void removeConnected(const QString &connectionName)
Definition: DatabaseDictionary.cpp:30
cutehmi::shareddatabase::internal::DatabaseDictionary::associateThread
void associateThread(const QString &connectionName, QThread *associatedThread)
Definition: DatabaseDictionary.cpp:7
std::internal
T internal(T... args)
QHash< QString, QThread * >
cutehmi::shareddatabase::internal::DatabaseDictionary::DatabaseDictionary
DatabaseDictionary()
Definition: DatabaseDictionary.cpp:55
cutehmi::shareddatabase::internal::DatabaseDictionary::isManaged
bool isManaged(const QString &connectionName) const
Definition: DatabaseDictionary.cpp:50
cutehmi::Singleton
cutehmi::shareddatabase::internal::DatabaseDictionary::associatedThread
QThread * associatedThread(const QString &connectionName) const
Definition: DatabaseDictionary.cpp:20
cutehmi::shareddatabase::internal::DatabaseDictionary::threadChanged
void threadChanged(QString connectionName)