#pragma once #include #include #include #include "cmds_basic.h" #include "validate_basic.h" #include "logs_port.h" namespace dispatch { class Dispatch { private: QHash> _cmds_map; QHash _cmds_validators; QHash> _events_map; QList> _output_list; static Dispatch* _unique_inst; public: static Dispatch* unique(); void loadOutput(std::shared_ptr out_ins); QList allCmds() const; void registerCmd(quint64 addr, Inlet::IRunbase* unit); void setCmdAlias(quint64 addr, const QString& alias); void setCmdValidator(quint64 addr, validate::IValidatorTemplet* inst); QString getCmdAlias(quint64 addr) const; QString getCmdDefault(quint64 addr) const; void runWith(Inlet::IRunbase* unit); void getValidateDepict(datas::IDataObject &object) const; QList allEvents() const; void registerEvent(quint64 addr, Inlet::IRunbase* unit); void setEventAlias(quint64 addr, const QString& alias); QString getEventAlias(quint64 addr) const; QString getEventDefault(quint64 addr) const; void notifyWith(Inlet::IRunbase* unit); }; }