int XmppTaskPresence::ProcessStart() { txmpp::scoped_ptr<txmpp::XmlElement> presence( new txmpp::XmlElement(txmpp::QN_PRESENCE)); SendStanza(presence.get()); return STATE_RESPONSE; }
virtual int ProcessStart() { const buzz::XmlElement* Stanza = NextStanza(); if (Stanza == NULL) return STATE_BLOCKED; if (SendStanza(Stanza) != buzz::XMPP_RETURN_OK) return STATE_ERROR; return STATE_START; }
void ChatTask::sendChatMessage(buzz::Jid* sendToJid, const string& text) { LoggerUtil_info(logger, "sendChatMessage"); buzz::XmlElement* message = new buzz::XmlElement(buzz::QN_MESSAGE); message->AddAttr(buzz::QN_TO, sendToJid->BareJid().Str()); message->AddAttr(buzz::QN_TYPE, "chat"); buzz::XmlElement* body = message->FindOrAddNamedChild(buzz::QN_BODY); body->SetBodyText(text); SendStanza(message); delete message; }
int XmppTaskIq::ProcessStart() { set_task_id(GetClient()->NextId()); txmpp::scoped_ptr<txmpp::XmlElement> privacy( MakeIq("get", txmpp::JID_EMPTY, task_id())); txmpp::XmlElement *query = new txmpp::XmlElement(txmpp::QN_PRIVACY_QUERY); privacy->AddElement(query); SendStanza(privacy.get()); return STATE_RESPONSE; }
virtual int ProcessStart() { // see if there are any new stanzas to process const buzz::XmlElement* Stanza = NextStanza(); if (Stanza == NULL) { return STATE_BLOCKED; } if (SendStanza(Stanza) != buzz::XMPP_RETURN_OK) { return STATE_ERROR; } return STATE_START; }
int XmppTaskMessage::ProcessResponse() { const txmpp::XmlElement* stanza = NextStanza(); if (stanza == NULL) { return STATE_BLOCKED; } std::string from = "Someone"; std::string text = "something too quiet to hear."; if (stanza->HasAttr(txmpp::QN_FROM)) from = stanza->Attr(txmpp::QN_FROM); const txmpp::XmlElement *body_stanza = stanza->FirstNamed(txmpp::QN_BODY); if (body_stanza != NULL) { text = body_stanza->BodyText(); } std::cout << "Message: " << from << " says " << text << std::endl; // Send response message if (from != "Someone") { std::stringstream response_text; response_text << "The thing you said was " << text.length() << " characters long."; txmpp::scoped_ptr<txmpp::XmlElement> message( new txmpp::XmlElement(txmpp::QN_MESSAGE)); message->SetAttr(txmpp::QN_TO, from); txmpp::XmlElement *body = new txmpp::XmlElement(txmpp::QN_BODY); body->SetBodyText(response_text.str()); message->AddElement(body); SendStanza(message.get()); } return STATE_RESPONSE; }