38 lines
937 B
C
38 lines
937 B
C
|
#pragma once
|
||
|
|
||
|
#include <QString>
|
||
|
#include <QHash>
|
||
|
#include "cmds_basic.h"
|
||
|
|
||
|
namespace dispatch {
|
||
|
|
||
|
class IOutput {
|
||
|
public:
|
||
|
virtual ~IOutput() = default;
|
||
|
|
||
|
virtual void write(const QString &title, const QString& desc) = 0;
|
||
|
};
|
||
|
|
||
|
class Dispatch {
|
||
|
private:
|
||
|
QHash<quint64, std::pair<QString, Inlet::IRunbase*>> _cmds_map;
|
||
|
QHash<quint64, std::pair<QString, Inlet::IRunbase*>> _events_map;
|
||
|
|
||
|
QList<IOutput*> _output_list;
|
||
|
|
||
|
public:
|
||
|
QList<quint64> allCmds() const;
|
||
|
void registerCmd(quint64 addr, Inlet::IRunbase* unit, const QString& alias);
|
||
|
QString getCmdAlias(quint64 addr) const;
|
||
|
QString getCmdDefault(quint64 addr) const;
|
||
|
void runWith(Inlet::IRunbase* unit);
|
||
|
|
||
|
QList<quint64> allEvents() const;
|
||
|
void registerEvent(quint64 addr, Inlet::IRunbase* unit, const QString& alias);
|
||
|
QString getEventAlias(quint64 addr) const;
|
||
|
QString getEventDefault(quint64 addr) const;
|
||
|
QString notifyWith(Inlet::IRunbase* unit);
|
||
|
|
||
|
};
|
||
|
}
|