void JabberStreamDebugService::message(QXmppLogger::MessageType type, const QString &message) { if (type & QXmppLogger::MessageType::ReceivedMessage) emit incomingStream(filterPrivateData(message)); else emit outgoingStream(filterPrivateData(message)); }
void ServerBase::update(void) { if (!mIsRunning) return; ENetEvent event; while (enet_host_service(mInternalHost, &event, 0) > 0) { switch(event.type) { case ENET_EVENT_TYPE_CONNECT: { IncomingClientBase *client = new Kiaro::Network::IncomingClientBase(event.peer, this); event.peer->data = client; mConnectedClientSet.insert(mConnectedClientSet.end(), (size_t)client); onClientConnected(client); break; } case ENET_EVENT_TYPE_DISCONNECT: { Kiaro::Network::IncomingClientBase *disconnected = (Kiaro::Network::IncomingClientBase*)event.peer->data; onClientDisconnected(disconnected); mConnectedClientSet.erase((size_t)disconnected); delete disconnected; break; } case ENET_EVENT_TYPE_RECEIVE: { if (!event.peer->data) { enet_packet_destroy(event.packet); throw std::runtime_error("ServerBase: Invalid ENet peer data on packet receive!"); } Kiaro::Network::IncomingClientBase *sender = (Kiaro::Network::IncomingClientBase*)event.peer->data; Kiaro::Support::BitStream incomingStream(event.packet->data, event.packet->dataLength, event.packet->dataLength); onReceivePacket(incomingStream, sender); enet_packet_destroy(event.packet); break; } case ENET_EVENT_TYPE_NONE: break; } } }