-
Nicolas Werner authoredNicolas Werner authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
sync.h 787 B
#pragma once
#include <atomic>
#include <QMutex>
#include <QThread>
#include <QWaitCondition>
#include "login.h"
#include "models/roommodel.h"
class Sync : public QThread {
Q_OBJECT
public:
Sync(RoomModel &rooms, Login *login, QObject *parent = 0)
: QThread(parent), rooms(rooms), stop(false), exit(false) {
connect(this, &Sync::nextSync, this, &Sync::sync);
}
~Sync();
void run();
public slots:
void startSync();
void stopSync();
private slots:
void sync();
signals:
void newRoom(QSharedPointer<Room> room);
void newInvite(QSharedPointer<Room> room);
void nextSync();
private:
RoomModel &rooms;
QWaitCondition condition;
QMutex mutex;
std::atomic<bool> stop, exit;
std::string since;
};