#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);
QAtomicInt idGenerator;
QMap<QString, QList<QPair<QString, std::function<void(QString)>>>> subjects;
};
#endif // DORICGLOBALBROADCAST_H