| 43 | */ |
| 44 | |
| 45 | void EventCallProxy::registerHandler(EventHandler::Type type, const QStringList &topics, EventCallProxy::CreateFunc creator) |
| 46 | { |
| 47 | QMutexLocker locker(eventMutex()); |
| 48 | auto &infoList = getInfoList(); |
| 49 | ExportFunc invoke {nullptr}; |
| 50 | if (type == EventHandler::Type::Sync) { |
| 51 | invoke = [creator] (HandlerInfo &info, const Event &event) { |
| 52 | fillInfo(info, creator); |
| 53 | info.handler->eventProcess(event); |
| 54 | }; |
| 55 | } |
| 56 | |
| 57 | if (type == EventHandler::Type::Async) { |
| 58 | invoke = [creator] (HandlerInfo &info, const Event &event) { |
| 59 | fillInfo(info, creator); |
| 60 | info.future = QtConcurrent::run(info.handler.data(), &EventHandler::eventProcess, event); |
| 61 | }; |
| 62 | } |
| 63 | qDebug() << "Register Handler, type " << static_cast<int>(type) << ", topics" << topics; |
| 64 | infoList.append(HandlerInfo{nullptr, invoke, topics, QFuture<void>()}); |
| 65 | } |
| 66 | |
| 67 | |
| 68 | QList<EventCallProxy::HandlerInfo> &EventCallProxy::getInfoList() |
no test coverage detected