Esempio n. 1
0
//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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
/**
 * 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;
    }
}