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

Unified Diff: webrtc/libjingle/xmpp/xmpptask.h

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/xmppstanzaparser_unittest.cc ('k') | webrtc/libjingle/xmpp/xmpptask.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/libjingle/xmpp/xmpptask.h
diff --git a/webrtc/libjingle/xmpp/xmpptask.h b/webrtc/libjingle/xmpp/xmpptask.h
deleted file mode 100644
index 3f3a39c791cb295d8630eeb680a198362d4d16de..0000000000000000000000000000000000000000
--- a/webrtc/libjingle/xmpp/xmpptask.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright 2004 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.
- */
-
-#ifndef WEBRTC_LIBJINGLE_XMPP_XMPPTASK_H_
-#define WEBRTC_LIBJINGLE_XMPP_XMPPTASK_H_
-
-#include <deque>
-#include <memory>
-#include <string>
-
-#include "webrtc/libjingle/xmpp/xmppengine.h"
-#include "webrtc/base/constructormagic.h"
-#include "webrtc/base/sigslot.h"
-#include "webrtc/base/task.h"
-#include "webrtc/base/taskparent.h"
-
-namespace buzz {
-
-/////////////////////////////////////////////////////////////////////
-//
-// XMPPTASK
-//
-/////////////////////////////////////////////////////////////////////
-//
-// See Task and XmppClient first.
-//
-// XmppTask is a task that is designed to go underneath XmppClient and be
-// useful there. It has a way of finding its XmppClient parent so you
-// can have it nested arbitrarily deep under an XmppClient and it can
-// still find the XMPP services.
-//
-// Tasks register themselves to listen to particular kinds of stanzas
-// that are sent out by the client. Rather than processing stanzas
-// right away, they should decide if they own the sent stanza,
-// and if so, queue it and Wake() the task, or if a stanza does not belong
-// to you, return false right away so the next XmppTask can take a crack.
-// This technique (synchronous recognize, but asynchronous processing)
-// allows you to have arbitrary logic for recognizing stanzas yet still,
-// for example, disconnect a client while processing a stanza -
-// without reentrancy problems.
-//
-/////////////////////////////////////////////////////////////////////
-
-class XmppTask;
-
-// XmppClientInterface is an abstract interface for sending and
-// handling stanzas. It can be implemented for unit tests or
-// different network environments. It will usually be implemented by
-// XmppClient.
-class XmppClientInterface {
- public:
- XmppClientInterface();
- virtual ~XmppClientInterface();
-
- virtual XmppEngine::State GetState() const = 0;
- virtual const Jid& jid() const = 0;
- virtual std::string NextId() = 0;
- virtual XmppReturnStatus SendStanza(const XmlElement* stanza) = 0;
- virtual XmppReturnStatus SendStanzaError(const XmlElement* original_stanza,
- XmppStanzaError error_code,
- const std::string& message) = 0;
- virtual void AddXmppTask(XmppTask* task, XmppEngine::HandlerLevel level) = 0;
- virtual void RemoveXmppTask(XmppTask* task) = 0;
- sigslot::signal0<> SignalDisconnected;
-
- RTC_DISALLOW_COPY_AND_ASSIGN(XmppClientInterface);
-};
-
-// XmppTaskParentInterface is the interface require for any parent of
-// an XmppTask. It needs, for example, a way to get an
-// XmppClientInterface.
-
-// We really ought to inherit from a TaskParentInterface, but we tried
-// that and it's way too complicated to change
-// Task/TaskParent/TaskRunner. For now, this works.
-class XmppTaskParentInterface : public rtc::Task {
- public:
- explicit XmppTaskParentInterface(rtc::TaskParent* parent)
- : Task(parent) {
- }
- virtual ~XmppTaskParentInterface() {}
-
- virtual XmppClientInterface* GetClient() = 0;
-
- RTC_DISALLOW_COPY_AND_ASSIGN(XmppTaskParentInterface);
-};
-
-class XmppTaskBase : public XmppTaskParentInterface {
- public:
- explicit XmppTaskBase(XmppTaskParentInterface* parent)
- : XmppTaskParentInterface(parent),
- parent_(parent) {
- }
- virtual ~XmppTaskBase() {}
-
- virtual XmppClientInterface* GetClient() {
- return parent_->GetClient();
- }
-
- protected:
- XmppTaskParentInterface* parent_;
-
- RTC_DISALLOW_COPY_AND_ASSIGN(XmppTaskBase);
-};
-
-class XmppTask : public XmppTaskBase,
- public XmppStanzaHandler,
- public sigslot::has_slots<>
-{
- public:
- XmppTask(XmppTaskParentInterface* parent,
- XmppEngine::HandlerLevel level = XmppEngine::HL_NONE);
- virtual ~XmppTask();
-
- std::string task_id() const { return id_; }
- void set_task_id(std::string id) { id_ = id; }
-
-#if !defined(NDEBUG)
- void set_debug_force_timeout(const bool f) { debug_force_timeout_ = f; }
-#endif
-
- virtual bool HandleStanza(const XmlElement* stanza) { return false; }
-
- protected:
- XmppReturnStatus SendStanza(const XmlElement* stanza);
- XmppReturnStatus SetResult(const std::string& code);
- XmppReturnStatus SendStanzaError(const XmlElement* element_original,
- XmppStanzaError code,
- const std::string& text);
-
- virtual void Stop();
- virtual void OnDisconnect();
-
- virtual void QueueStanza(const XmlElement* stanza);
- const XmlElement* NextStanza();
-
- bool MatchStanzaFrom(const XmlElement* stanza, const Jid& match_jid);
-
- bool MatchResponseIq(const XmlElement* stanza, const Jid& to,
- const std::string& task_id);
-
- static bool MatchRequestIq(const XmlElement* stanza, const std::string& type,
- const QName& qn);
- static XmlElement *MakeIqResult(const XmlElement* query);
- static XmlElement *MakeIq(const std::string& type,
- const Jid& to, const std::string& task_id);
-
- // Returns true if the task is under the specified rate limit and updates the
- // rate limit accordingly
- bool VerifyTaskRateLimit(const std::string task_name, int max_count,
- int per_x_seconds);
-
-private:
- void StopImpl();
-
- bool stopped_;
- std::deque<XmlElement*> stanza_queue_;
- std::unique_ptr<XmlElement> next_stanza_;
- std::string id_;
-
-#if !defined(NDEBUG)
- bool debug_force_timeout_;
-#endif
-};
-
-} // namespace buzz
-
-#endif // WEBRTC_LIBJINGLE_XMPP_XMPPTASK_H_
« no previous file with comments | « webrtc/libjingle/xmpp/xmppstanzaparser_unittest.cc ('k') | webrtc/libjingle/xmpp/xmpptask.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698