mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 20:16:16 +02:00
call right method from packetReceiver
This commit is contained in:
parent
e749b9727f
commit
55eb24e69e
1 changed files with 19 additions and 13 deletions
|
@ -219,21 +219,29 @@ void PacketReceiver::processDatagrams() {
|
|||
|
||||
if (listener.first) {
|
||||
|
||||
if (matchingNode) {
|
||||
emit dataReceived(matchingNode->getType(), packet->getSizeWithHeader());
|
||||
} else {
|
||||
emit dataReceived(NodeType::Unassigned, packet->getSizeWithHeader());
|
||||
}
|
||||
|
||||
bool success = false;
|
||||
|
||||
if (matchingNode) {
|
||||
success = listener.second.invoke(listener.first,
|
||||
Q_ARG(QSharedPointer<NLPacket>, QSharedPointer<NLPacket>(packet.release())));
|
||||
} else {
|
||||
success = listener.second.invoke(listener.first,
|
||||
emit dataReceived(matchingNode->getType(), packet->getSizeWithHeader());
|
||||
QMetaMethod metaMethod = listener.second;
|
||||
|
||||
static const QByteArray SHARED_NODE_NORMALIZED = QMetaObject::normalizedType("QSharedPointer<Node>");
|
||||
|
||||
if (metaMethod.parameterTypes().contains(SHARED_NODE_NORMALIZED)) {
|
||||
success = metaMethod.invoke(listener.first,
|
||||
Q_ARG(QSharedPointer<NLPacket>, QSharedPointer<NLPacket>(packet.release())),
|
||||
Q_ARG(SharedNodePointer, matchingNode));
|
||||
|
||||
} else {
|
||||
success = metaMethod.invoke(listener.first,
|
||||
Q_ARG(QSharedPointer<NLPacket>, QSharedPointer<NLPacket>(packet.release())));
|
||||
}
|
||||
|
||||
} else {
|
||||
emit dataReceived(NodeType::Unassigned, packet->getSizeWithHeader());
|
||||
|
||||
success = listener.second.invoke(listener.first,
|
||||
Q_ARG(QSharedPointer<NLPacket>, QSharedPointer<NLPacket>(packet.release())));
|
||||
}
|
||||
|
||||
if (!success) {
|
||||
|
@ -247,13 +255,11 @@ void PacketReceiver::processDatagrams() {
|
|||
<< "has been destroyed - removing mapping.";
|
||||
_packetListenerMap.erase(it);
|
||||
}
|
||||
|
||||
_packetListenerLock.unlock();
|
||||
|
||||
} else {
|
||||
_packetListenerLock.unlock();
|
||||
qDebug() << "No listener found for packet type " << nameForPacketType(packet->getType());
|
||||
}
|
||||
|
||||
_packetListenerLock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue