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

Unified Diff: webrtc/libjingle/xmpp/xmppengineimpl.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/xmppengine_unittest.cc ('k') | webrtc/libjingle/xmpp/xmppengineimpl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/libjingle/xmpp/xmppengineimpl.h
diff --git a/webrtc/libjingle/xmpp/xmppengineimpl.h b/webrtc/libjingle/xmpp/xmppengineimpl.h
deleted file mode 100644
index e1f3061f90d265cf0a9db1d8f42154ff8478ab8f..0000000000000000000000000000000000000000
--- a/webrtc/libjingle/xmpp/xmppengineimpl.h
+++ /dev/null
@@ -1,267 +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_XMPPENGINEIMPL_H_
-#define WEBRTC_LIBJINGLE_XMPP_XMPPENGINEIMPL_H_
-
-#include <memory>
-#include <sstream>
-#include <vector>
-
-#include "webrtc/libjingle/xmpp/xmppengine.h"
-#include "webrtc/libjingle/xmpp/xmppstanzaparser.h"
-
-namespace buzz {
-
-class XmppLoginTask;
-class XmppEngine;
-class XmppIqEntry;
-class SaslHandler;
-class SaslMechanism;
-
-//! The XMPP connection engine.
-//! This engine implements the client side of the 'core' XMPP protocol.
-//! To use it, register an XmppOutputHandler to handle socket output
-//! and pass socket input to HandleInput. Then application code can
-//! set up the connection with a user, password, and other settings,
-//! and then call Connect() to initiate the connection.
-//! An application can listen for events and receive stanzas by
-//! registering an XmppStanzaHandler via AddStanzaHandler().
-class XmppEngineImpl : public XmppEngine {
- public:
- XmppEngineImpl();
- virtual ~XmppEngineImpl();
-
- // SOCKET INPUT AND OUTPUT ------------------------------------------------
-
- //! Registers the handler for socket output
- virtual XmppReturnStatus SetOutputHandler(XmppOutputHandler *pxoh);
-
- //! Provides socket input to the engine
- virtual XmppReturnStatus HandleInput(const char* bytes, size_t len);
-
- //! Advises the engine that the socket has closed
- virtual XmppReturnStatus ConnectionClosed(int subcode);
-
- // SESSION SETUP ---------------------------------------------------------
-
- //! Indicates the (bare) JID for the user to use.
- virtual XmppReturnStatus SetUser(const Jid& jid);
-
- //! Get the login (bare) JID.
- virtual const Jid& GetUser();
-
- //! Indicates the autentication to use. Takes ownership of the object.
- virtual XmppReturnStatus SetSaslHandler(SaslHandler* sasl_handler);
-
- //! Sets whether TLS will be used within the connection (default true).
- virtual XmppReturnStatus SetTls(TlsOptions use_tls);
-
- //! Sets an alternate domain from which we allows TLS certificates.
- //! This is for use in the case where a we want to allow a proxy to
- //! serve up its own certificate rather than one owned by the underlying
- //! domain.
- virtual XmppReturnStatus SetTlsServer(const std::string& proxy_hostname,
- const std::string& proxy_domain);
-
- //! Gets whether TLS will be used within the connection.
- virtual TlsOptions GetTls();
-
- //! Sets the request resource name, if any (optional).
- //! Note that the resource name may be overridden by the server; after
- //! binding, the actual resource name is available as part of FullJid().
- virtual XmppReturnStatus SetRequestedResource(const std::string& resource);
-
- //! Gets the request resource name.
- virtual const std::string& GetRequestedResource();
-
- //! Sets language
- virtual void SetLanguage(const std::string& lang) {
- lang_ = lang;
- }
-
- // SESSION MANAGEMENT ---------------------------------------------------
-
- //! Set callback for state changes.
- virtual XmppReturnStatus SetSessionHandler(XmppSessionHandler* handler);
-
- //! Initiates the XMPP connection.
- //! After supplying connection settings, call this once to initiate,
- //! (optionally) encrypt, authenticate, and bind the connection.
- virtual XmppReturnStatus Connect();
-
- //! The current engine state.
- virtual State GetState() { return state_; }
-
- //! Returns true if the connection is encrypted (under TLS)
- virtual bool IsEncrypted() { return encrypted_; }
-
- //! The error code.
- //! Consult this after XmppOutputHandler.OnClose().
- virtual Error GetError(int *subcode) {
- if (subcode) {
- *subcode = subcode_;
- }
- return error_code_;
- }
-
- //! The stream:error stanza, when the error is XmppEngine::ERROR_STREAM.
- //! Notice the stanza returned is owned by the XmppEngine and
- //! is deleted when the engine is destroyed.
- virtual const XmlElement* GetStreamError() { return stream_error_.get(); }
-
- //! Closes down the connection.
- //! Sends CloseConnection to output, and disconnects and registered
- //! session handlers. After Disconnect completes, it is guaranteed
- //! that no further callbacks will be made.
- virtual XmppReturnStatus Disconnect();
-
- // APPLICATION USE -------------------------------------------------------
-
- //! Adds a listener for session events.
- //! Stanza delivery is chained to session handlers; the first to
- //! return 'true' is the last to get each stanza.
- virtual XmppReturnStatus AddStanzaHandler(XmppStanzaHandler* handler,
- XmppEngine::HandlerLevel level);
-
- //! Removes a listener for session events.
- virtual XmppReturnStatus RemoveStanzaHandler(XmppStanzaHandler* handler);
-
- //! Sends a stanza to the server.
- virtual XmppReturnStatus SendStanza(const XmlElement* stanza);
-
- //! Sends raw text to the server
- virtual XmppReturnStatus SendRaw(const std::string& text);
-
- //! Sends an iq to the server, and registers a callback for the result.
- //! Returns the cookie passed to the result handler.
- virtual XmppReturnStatus SendIq(const XmlElement* stanza,
- XmppIqHandler* iq_handler,
- XmppIqCookie* cookie);
-
- //! Unregisters an iq callback handler given its cookie.
- //! No callback will come to this handler after it's unregistered.
- virtual XmppReturnStatus RemoveIqHandler(XmppIqCookie cookie,
- XmppIqHandler** iq_handler);
-
- //! Forms and sends an error in response to the given stanza.
- //! Swaps to and from, sets type to "error", and adds error information
- //! based on the passed code. Text is optional and may be STR_EMPTY.
- virtual XmppReturnStatus SendStanzaError(const XmlElement* pelOriginal,
- XmppStanzaError code,
- const std::string& text);
-
- //! The fullly bound JID.
- //! This JID is only valid after binding has succeeded. If the value
- //! is JID_NULL, the binding has not succeeded.
- virtual const Jid& FullJid() { return bound_jid_; }
-
- //! The next unused iq id for this connection.
- //! Call this when building iq stanzas, to ensure that each iq
- //! gets its own unique id.
- virtual std::string NextId();
-
- private:
- friend class XmppLoginTask;
- friend class XmppIqEntry;
-
- void IncomingStanza(const XmlElement *stanza);
- void IncomingStart(const XmlElement *stanza);
- void IncomingEnd(bool isError);
-
- void InternalSendStart(const std::string& domainName);
- void InternalSendStanza(const XmlElement* stanza);
- std::string ChooseBestSaslMechanism(
- const std::vector<std::string>& mechanisms, bool encrypted);
- SaslMechanism* GetSaslMechanism(const std::string& name);
- void SignalBound(const Jid& fullJid);
- void SignalStreamError(const XmlElement* streamError);
- void SignalError(Error errorCode, int subCode);
- bool HasError();
- void DeleteIqCookies();
- bool HandleIqResponse(const XmlElement* element);
- void StartTls(const std::string& domain);
- void RaiseReset() { raised_reset_ = true; }
-
- class StanzaParseHandler : public XmppStanzaParseHandler {
- public:
- StanzaParseHandler(XmppEngineImpl* outer) : outer_(outer) {}
- virtual ~StanzaParseHandler() {}
-
- virtual void StartStream(const XmlElement* stream) {
- outer_->IncomingStart(stream);
- }
- virtual void Stanza(const XmlElement* stanza) {
- outer_->IncomingStanza(stanza);
- }
- virtual void EndStream() {
- outer_->IncomingEnd(false);
- }
- virtual void XmlError() {
- outer_->IncomingEnd(true);
- }
-
- private:
- XmppEngineImpl* const outer_;
- };
-
- class EnterExit {
- public:
- EnterExit(XmppEngineImpl* engine);
- ~EnterExit();
- private:
- XmppEngineImpl* engine_;
- State state_;
- };
-
- friend class StanzaParseHandler;
- friend class EnterExit;
-
- StanzaParseHandler stanza_parse_handler_;
- XmppStanzaParser stanza_parser_;
-
- // state
- int engine_entered_;
- Jid user_jid_;
- std::string password_;
- std::string requested_resource_;
- TlsOptions tls_option_;
- std::string tls_server_hostname_;
- std::string tls_server_domain_;
- std::unique_ptr<XmppLoginTask> login_task_;
- std::string lang_;
-
- int next_id_;
- Jid bound_jid_;
- State state_;
- bool encrypted_;
- Error error_code_;
- int subcode_;
- std::unique_ptr<XmlElement> stream_error_;
- bool raised_reset_;
- XmppOutputHandler* output_handler_;
- XmppSessionHandler* session_handler_;
-
- XmlnsStack xmlns_stack_;
-
- typedef std::vector<XmppStanzaHandler*> StanzaHandlerVector;
- std::unique_ptr<StanzaHandlerVector> stanza_handlers_[HL_COUNT];
-
- typedef std::vector<XmppIqEntry*> IqEntryVector;
- std::unique_ptr<IqEntryVector> iq_entries_;
-
- std::unique_ptr<SaslHandler> sasl_handler_;
-
- std::unique_ptr<std::stringstream> output_;
-};
-
-} // namespace buzz
-
-#endif // WEBRTC_LIBJINGLE_XMPP_XMPPENGINEIMPL_H_
« no previous file with comments | « webrtc/libjingle/xmpp/xmppengine_unittest.cc ('k') | webrtc/libjingle/xmpp/xmppengineimpl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698