| 259 | } |
| 260 | |
| 261 | void Endpoint::registerMessageHandler(Protocol::ObjectAddress objectAddress, QObject *receiver, |
| 262 | const char *messageHandlerName) |
| 263 | { |
| 264 | Q_ASSERT(m_addressMap.contains(objectAddress)); |
| 265 | ObjectInfo *obj = m_addressMap.value(objectAddress); |
| 266 | Q_ASSERT(obj); |
| 267 | Q_ASSERT(!obj->receiver); |
| 268 | Q_ASSERT(!obj->messageHandler.isValid()); |
| 269 | obj->receiver = receiver; |
| 270 | |
| 271 | QByteArray signature(messageHandlerName); |
| 272 | signature += "(GammaRay::Message)"; |
| 273 | auto idx = receiver->metaObject()->indexOfMethod(signature); |
| 274 | Q_ASSERT(idx >= 0); |
| 275 | obj->messageHandler = receiver->metaObject()->method(idx); |
| 276 | |
| 277 | Q_ASSERT(!m_handlerMap.contains(receiver, obj)); |
| 278 | m_handlerMap.insert(receiver, obj); |
| 279 | if (obj->receiver != obj->object) |
| 280 | connect(receiver, &QObject::destroyed, this, &Endpoint::slotHandlerDestroyed); |
| 281 | } |
| 282 | |
| 283 | void Endpoint::unregisterMessageHandler(Protocol::ObjectAddress objectAddress) |
| 284 | { |
no test coverage detected