-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdatabase_thread.h
87 lines (68 loc) · 2.3 KB
/
database_thread.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#ifndef DATABASE_THREAD_H
#define DATABASE_THREAD_H
#include "qdatetime.h"
#include <QObject>
#include <QThread>
#include <iostream>
#include <QSqlDatabase>
#include <QStandardItemModel>
#include <database_connection.h>
struct DataColumn
{
QString proc_name;
QString comm_type;
int proc_rank;
long recv_datasize;
long send_datasize;
float late_sender;
float late_receiver;
float time_diff;
};
class Database_Thread : public QObject
{
Q_OBJECT
Q_PROPERTY(bool thread_running READ thread_running WRITE set_thread_running NOTIFY thread_runningChanged)
public:
explicit Database_Thread(QString dbConnectionName, int slurm_id, int proc_num, bool live_run, QObject *parent = nullptr);
~Database_Thread();
// Getter und Setter für die Property
bool thread_running() const;
void set_thread_running(bool running);
void detailed_p2p_Query(const QDateTime timestampA, const QDateTime timestampB);
public slots:
void connectToDB();
void threadbuildClusterComponents();
void updateData(const int &time_display);
void showDataFromTimePeriod(const QDateTime timestampA, const QDateTime timestampB);
void clearDatabase();
void getProcNum(const int proc_num);
void fetchEduMPIJobs(const QString &userId);
void selectEndTimestamp();
void set_end_timestamp_db(QDateTime timestamp);
void reset_actual_timestamp();
//Q_INVOKABLE void set_thread_running(bool running);
signals:
void connectedToDB(const bool &success);
void clusterComponentsReady(const QMap<QString, QVector<int>> &map);
void updateDataReady(const QList<DataColumn> &list);
void updateDetailedP2P(QList<QVariantList>);
void updateDetailedColl(QList<QVariantList>);
void dbCleared();
//set bool = 1 for start-timestamp and bool = 0 for end-timestamp
void setTimestamp(QDateTime timestamp, bool start);
void eduMPIJobsFetched(const QVariantList &jobIds);
void thread_runningChanged();
private:
//database_connection
Database_Connection *m_dbConnection;
QString m_connectionName;
bool m_clearingProc = false;
QDateTime m_actualDBEntryTime;
QDateTime m_firstDBEntryDate;
bool m_thread_running;
QTime m_firstDBEntryTime;
int m_slurm_id;
int m_proc_num;
bool m_live_run;
};
#endif // DATABASE_THREAD_H