MCPcopy Create free account
hub / github.com/Codeya-IDE/deepin-ide / registerHandler

Method registerHandler

src/framework/event/eventcallproxy.cpp:45–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43 */
44
45void 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
68QList<EventCallProxy::HandlerInfo> &EventCallProxy::getInfoList()

Callers 4

registerHanlderMethod · 0.45
registerHandlersMethod · 0.45
registerDapHandlersMethod · 0.45
InputEditMethod · 0.45

Calls 3

eventProcessMethod · 0.45
dataMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected