Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Unified Diff: webrtc/libjingle/xmpp/pubsubtasks.cc

Issue 2617443003: Remove webrtc/libjingle/{xmllite,xmpp} (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/libjingle/xmpp/pubsubtasks.h ('k') | webrtc/libjingle/xmpp/pubsubtasks_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/libjingle/xmpp/pubsubtasks.cc
diff --git a/webrtc/libjingle/xmpp/pubsubtasks.cc b/webrtc/libjingle/xmpp/pubsubtasks.cc
deleted file mode 100644
index d6532598b564075304808433795cc25fcb024e82..0000000000000000000000000000000000000000
--- a/webrtc/libjingle/xmpp/pubsubtasks.cc
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright 2011 The WebRTC Project Authors. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/libjingle/xmpp/pubsubtasks.h"
-
-#include <string>
-#include <vector>
-
-#include "webrtc/libjingle/xmpp/constants.h"
-#include "webrtc/libjingle/xmpp/receivetask.h"
-
-// An implementation of the tasks for XEP-0060
-// (http://xmpp.org/extensions/xep-0060.html).
-
-namespace buzz {
-
-namespace {
-
-bool IsPubSubEventItemsElem(const XmlElement* stanza,
- const std::string& expected_node) {
- if (stanza->Name() != QN_MESSAGE) {
- return false;
- }
-
- const XmlElement* event_elem = stanza->FirstNamed(QN_PUBSUB_EVENT);
- if (event_elem == NULL) {
- return false;
- }
-
- const XmlElement* items_elem = event_elem->FirstNamed(QN_PUBSUB_EVENT_ITEMS);
- if (items_elem == NULL) {
- return false;
- }
-
- const std::string& actual_node = items_elem->Attr(QN_NODE);
- return (actual_node == expected_node);
-}
-
-
-// Creates <pubsub node="node"><items></pubsub>
-XmlElement* CreatePubSubItemsElem(const std::string& node) {
- XmlElement* items_elem = new XmlElement(QN_PUBSUB_ITEMS, false);
- items_elem->AddAttr(QN_NODE, node);
- XmlElement* pubsub_elem = new XmlElement(QN_PUBSUB, false);
- pubsub_elem->AddElement(items_elem);
- return pubsub_elem;
-}
-
-// Creates <pubsub node="node"><publish><item id="itemid">payload</item>...
-// Takes ownership of payload.
-XmlElement* CreatePubSubPublishItemElem(
- const std::string& node,
- const std::string& itemid,
- const std::vector<XmlElement*>& children) {
- XmlElement* pubsub_elem = new XmlElement(QN_PUBSUB, true);
- XmlElement* publish_elem = new XmlElement(QN_PUBSUB_PUBLISH, false);
- publish_elem->AddAttr(QN_NODE, node);
- XmlElement* item_elem = new XmlElement(QN_PUBSUB_ITEM, false);
- item_elem->AddAttr(QN_ID, itemid);
- for (std::vector<XmlElement*>::const_iterator child = children.begin();
- child != children.end(); ++child) {
- item_elem->AddElement(*child);
- }
- publish_elem->AddElement(item_elem);
- pubsub_elem->AddElement(publish_elem);
- return pubsub_elem;
-}
-
-// Creates <pubsub node="node"><publish><item id="itemid">payload</item>...
-// Takes ownership of payload.
-XmlElement* CreatePubSubRetractItemElem(const std::string& node,
- const std::string& itemid) {
- XmlElement* pubsub_elem = new XmlElement(QN_PUBSUB, true);
- XmlElement* retract_elem = new XmlElement(QN_PUBSUB_RETRACT, false);
- retract_elem->AddAttr(QN_NODE, node);
- retract_elem->AddAttr(QN_NOTIFY, "true");
- XmlElement* item_elem = new XmlElement(QN_PUBSUB_ITEM, false);
- item_elem->AddAttr(QN_ID, itemid);
- retract_elem->AddElement(item_elem);
- pubsub_elem->AddElement(retract_elem);
- return pubsub_elem;
-}
-
-void ParseItem(const XmlElement* item_elem,
- std::vector<PubSubItem>* items) {
- PubSubItem item;
- item.itemid = item_elem->Attr(QN_ID);
- item.elem = item_elem;
- items->push_back(item);
-}
-
-// Right now, <retract>s are treated the same as items with empty
-// payloads. We may want to change it in the future, but right now
-// it's sufficient for our needs.
-void ParseRetract(const XmlElement* retract_elem,
- std::vector<PubSubItem>* items) {
- ParseItem(retract_elem, items);
-}
-
-void ParseEventItemsElem(const XmlElement* stanza,
- std::vector<PubSubItem>* items) {
- const XmlElement* event_elem = stanza->FirstNamed(QN_PUBSUB_EVENT);
- if (event_elem != NULL) {
- const XmlElement* items_elem =
- event_elem->FirstNamed(QN_PUBSUB_EVENT_ITEMS);
- if (items_elem != NULL) {
- for (const XmlElement* item_elem =
- items_elem->FirstNamed(QN_PUBSUB_EVENT_ITEM);
- item_elem != NULL;
- item_elem = item_elem->NextNamed(QN_PUBSUB_EVENT_ITEM)) {
- ParseItem(item_elem, items);
- }
- for (const XmlElement* retract_elem =
- items_elem->FirstNamed(QN_PUBSUB_EVENT_RETRACT);
- retract_elem != NULL;
- retract_elem = retract_elem->NextNamed(QN_PUBSUB_EVENT_RETRACT)) {
- ParseRetract(retract_elem, items);
- }
- }
- }
-}
-
-void ParsePubSubItemsElem(const XmlElement* stanza,
- std::vector<PubSubItem>* items) {
- const XmlElement* pubsub_elem = stanza->FirstNamed(QN_PUBSUB);
- if (pubsub_elem != NULL) {
- const XmlElement* items_elem = pubsub_elem->FirstNamed(QN_PUBSUB_ITEMS);
- if (items_elem != NULL) {
- for (const XmlElement* item_elem = items_elem->FirstNamed(QN_PUBSUB_ITEM);
- item_elem != NULL;
- item_elem = item_elem->NextNamed(QN_PUBSUB_ITEM)) {
- ParseItem(item_elem, items);
- }
- }
- }
-}
-
-} // namespace
-
-PubSubRequestTask::PubSubRequestTask(XmppTaskParentInterface* parent,
- const Jid& pubsubjid,
- const std::string& node)
- : IqTask(parent, STR_GET, pubsubjid, CreatePubSubItemsElem(node)) {
-}
-
-void PubSubRequestTask::HandleResult(const XmlElement* stanza) {
- std::vector<PubSubItem> items;
- ParsePubSubItemsElem(stanza, &items);
- SignalResult(this, items);
-}
-
-int PubSubReceiveTask::ProcessStart() {
- if (SignalUpdate.is_empty()) {
- return STATE_DONE;
- }
- return ReceiveTask::ProcessStart();
-}
-
-bool PubSubReceiveTask::WantsStanza(const XmlElement* stanza) {
- return MatchStanzaFrom(stanza, pubsubjid_) &&
- IsPubSubEventItemsElem(stanza, node_) && !SignalUpdate.is_empty();
-}
-
-void PubSubReceiveTask::ReceiveStanza(const XmlElement* stanza) {
- std::vector<PubSubItem> items;
- ParseEventItemsElem(stanza, &items);
- SignalUpdate(this, items);
-}
-
-PubSubPublishTask::PubSubPublishTask(XmppTaskParentInterface* parent,
- const Jid& pubsubjid,
- const std::string& node,
- const std::string& itemid,
- const std::vector<XmlElement*>& children)
- : IqTask(parent, STR_SET, pubsubjid,
- CreatePubSubPublishItemElem(node, itemid, children)),
- itemid_(itemid) {
-}
-
-void PubSubPublishTask::HandleResult(const XmlElement* stanza) {
- SignalResult(this);
-}
-
-PubSubRetractTask::PubSubRetractTask(XmppTaskParentInterface* parent,
- const Jid& pubsubjid,
- const std::string& node,
- const std::string& itemid)
- : IqTask(parent, STR_SET, pubsubjid,
- CreatePubSubRetractItemElem(node, itemid)),
- itemid_(itemid) {
-}
-
-void PubSubRetractTask::HandleResult(const XmlElement* stanza) {
- SignalResult(this);
-}
-
-} // namespace buzz
« no previous file with comments | « webrtc/libjingle/xmpp/pubsubtasks.h ('k') | webrtc/libjingle/xmpp/pubsubtasks_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698