//IStanzaProcessor bool StanzaProcessor::sendStanzaIn(const Jid &AStreamJid, Stanza &AStanza) { emit stanzaReceived(AStreamJid, AStanza); bool acceptedIn = processStanza(AStreamJid,AStanza,IStanzaHandle::DirectionIn); bool acceptedIq = processStanzaRequest(AStreamJid,AStanza); return acceptedIn || acceptedIq; }
bool StanzaProcessor::sendStanzaOut(const Jid &AStreamJid, Stanza &AStanza) { if (!processStanza(AStreamJid,AStanza,IStanzaHandle::DirectionOut)) { IXmppStream *stream = FXmppStreamManager->findXmppStream(AStreamJid); if (stream!=NULL && stream->sendStanza(AStanza)>=0) { emit stanzaSent(AStreamJid, AStanza); return true; } return false; } return true; }
/** * Process events from incoming stream. */ void Stream::processEvent(const Parser::Event& event) { switch ( event.type() ) { case Parser::Event::DocumentOpen: { qDebug("[XMPP::Stream] Remote entity has opened the stream"); handleStreamOpen(event); emit streamOpened(); } break; case Parser::Event::DocumentClose: { qWarning("[XMPP::Stream] Remote entity has closed the stream"); emit streamClosed(); } break; case Parser::Event::Element: processStanza(event); break; case Parser::Event::Error: qCritical("[XMPP::Stream] Parser error"); break; } }