34 lines
800 B
C++
34 lines
800 B
C++
#ifndef DORICGLOBALBROADCAST_H
|
|
#define DORICGLOBALBROADCAST_H
|
|
|
|
#include <QDebug>
|
|
|
|
#include "DoricExport.h"
|
|
|
|
class DORIC_EXPORT DoricGlobalBroadcast {
|
|
private:
|
|
static DoricGlobalBroadcast *local_instance;
|
|
DoricGlobalBroadcast() { qDebug() << "DoricGlobalBroadcast constructor"; }
|
|
|
|
~DoricGlobalBroadcast() { qDebug() << "DoricGlobalBroadcast destructor"; }
|
|
|
|
public:
|
|
static DoricGlobalBroadcast *getInstance() {
|
|
static DoricGlobalBroadcast instance;
|
|
return &instance;
|
|
}
|
|
|
|
QString subscribe(QString name, std::function<void(QString)> callback);
|
|
|
|
void unsubscribe(QString subscribeId);
|
|
|
|
void publish(QString name, QString data);
|
|
|
|
private:
|
|
QAtomicInt idGenerator;
|
|
|
|
QMap<QString, QList<QPair<QString, std::function<void(QString)>>>> subjects;
|
|
};
|
|
|
|
#endif // DORICGLOBALBROADCAST_H
|