void JingleSession::setTerminated(IJingle::Reason AReason) { IJingle::SessionStatus currentStatus=FStatus; FStatus=IJingle::Terminated; FReason=AReason; deleteLater(); emit sessionTerminated(FThisParty, FSid, currentStatus, AReason); }
void JingleSession::setInitiated(IJingleApplication *AApplication) { FStatus=IJingle::Initiated; disconnect(parent()); setParent(AApplication->instance()); connect(this,SIGNAL(sessionInitiated(Jid,QString)),parent(),SLOT(onSessionInitiated(Jid,QString))); connect(this,SIGNAL(sessionAccepted(Jid,QString)),parent(),SLOT(onSessionAccepted(Jid,QString))); connect(this,SIGNAL(sessionConnected(Jid,QString)),parent(),SLOT(onSessionConnected(Jid,QString))); connect(this,SIGNAL(sessionTerminated(Jid,QString,IJingle::SessionStatus,IJingle::Reason)),parent(),SLOT(onSessionTerminated(Jid,QString,IJingle::SessionStatus,IJingle::Reason))); connect(this,SIGNAL(sessionInformed(QDomElement)),parent(),SLOT(onSessionInformed(QDomElement))); connect(this,SIGNAL(receivingData(Jid,QString)),parent(),SLOT(onDataReceived(Jid,QString))); connect(this,SIGNAL(actionAcknowledged(Jid,QString,IJingle::Action,IJingle::CommandRespond,IJingle::SessionStatus,Jid,IJingle::Reason)),parent(),SLOT(onActionAcknowledged(Jid,QString,IJingle::Action,IJingle::CommandRespond,IJingle::SessionStatus,Jid,IJingle::Reason))); emit sessionInitiated(FThisParty, FSid); }
JingleSession::JingleSession(const Jid &AThisParty, const Jid &AOtherParty, const QString &AApplicationNS): QObject(FJingle->appByNS(AApplicationNS)->instance()),FValid(false), FOutgoing(true), FApplicationNamespace(AApplicationNS),FThisParty(AThisParty), FOtherParty(AOtherParty), FSid(getSid(AThisParty)), FActionId(), FAction(IJingle::NoAction), FReason(IJingle::NoReason) { FSessions[FThisParty].insert(FSid, this); if (FThisParty.isValid() && FOtherParty.isValid()) { FValid=true; connect(this,SIGNAL(sessionInitiated(Jid,QString)),parent(),SLOT(onSessionInitiated(Jid,QString))); connect(this,SIGNAL(sessionAccepted(Jid,QString)),parent(),SLOT(onSessionAccepted(Jid,QString))); connect(this,SIGNAL(sessionConnected(Jid,QString)),parent(),SLOT(onSessionConnected(Jid,QString))); connect(this,SIGNAL(sessionTerminated(Jid,QString,IJingle::SessionStatus,IJingle::Reason)),parent(),SLOT(onSessionTerminated(Jid,QString,IJingle::SessionStatus,IJingle::Reason))); connect(this,SIGNAL(sessionInformed(QDomElement)),parent(),SLOT(onSessionInformed(QDomElement))); connect(this,SIGNAL(receivingData(Jid,QString)),parent(),SLOT(onDataReceived(Jid,QString))); connect(this,SIGNAL(actionAcknowledged(Jid,QString,IJingle::Action,IJingle::CommandRespond,IJingle::SessionStatus,Jid,IJingle::Reason)),parent(),SLOT(onActionAcknowledged(Jid,QString,IJingle::Action,IJingle::CommandRespond,IJingle::SessionStatus,Jid,IJingle::Reason))); } }
JingleSession::JingleSession(const JingleStanza &AStanza): FValid(false),FOutgoing(false),FThisParty(AStanza.to()),FOtherParty(AStanza.from()),FActionId(),FAction(IJingle::NoAction) { QDomElement jingle=AStanza.firstElement("jingle", NS_JINGLE); if (!jingle.isNull()) { QString action=jingle.attribute("action"); if (action=="session-initiate") { FSid=jingle.attribute("sid"); for (QDomElement content=jingle.firstChildElement("content"); !content.isNull(); content=content.nextSiblingElement("content")) { QDomElement description=content.firstChildElement("description"); if (!description.isNull()) { FApplicationNamespace = description.namespaceURI(); QDomElement transport=content.firstChildElement("transport"); if (!transport.isNull()) { setParent(FJingle->appByNS(FApplicationNamespace)->instance()); if (!addContent(content.attribute("name"), description, transport, content.attribute("initiator")==QString("responder"))) qWarning() << "addContent() failed!"; FValid=true; connect(this,SIGNAL(sessionAccepted(Jid,QString)),parent(), SLOT(onSessionAccepted(Jid,QString))); connect(this,SIGNAL(sessionTerminated(Jid,QString,IJingle::SessionStatus,IJingle::Reason)),parent(),SLOT(onSessionTerminated(Jid,QString,IJingle::SessionStatus,IJingle::Reason))); connect(this,SIGNAL(sessionInformed(QDomElement)),parent(),SLOT(onSessionInformed(QDomElement))); connect(this,SIGNAL(receivingData(Jid,QString)),parent(),SLOT(onDataReceived(Jid,QString))); connect(this,SIGNAL(actionAcknowledged(Jid,QString,IJingle::Action,IJingle::CommandRespond,IJingle::SessionStatus,Jid,IJingle::Reason)),parent(),SLOT(onActionAcknowledged(Jid,QString,IJingle::Action,IJingle::CommandRespond,IJingle::SessionStatus,Jid,IJingle::Reason))); } } } if (!FSessions.contains(FThisParty) || !FSessions[FThisParty].contains(FSid)) FSessions[FThisParty].insert(FSid, this); else qWarning() << "Session exists!"; } } }
void SpotWorker::emitSessionTerminatedSignal(void) { DEBUG printf("Emitting signal sessionTerminated\n"); emit sessionTerminated(); }