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

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

Issue 2618633003: Revert of 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/xmpppump.cc ('k') | webrtc/libjingle/xmpp/xmppsocket.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/libjingle/xmpp/xmppsocket.h
diff --git a/webrtc/libjingle/xmpp/xmppsocket.h b/webrtc/libjingle/xmpp/xmppsocket.h
new file mode 100644
index 0000000000000000000000000000000000000000..02d645383c3b9774a291d0b43f0bdb70d485ac71
--- /dev/null
+++ b/webrtc/libjingle/xmpp/xmppsocket.h
@@ -0,0 +1,72 @@
+/*
+ * 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_XMPPSOCKET_H_
+#define WEBRTC_LIBJINGLE_XMPP_XMPPSOCKET_H_
+
+#include "webrtc/libjingle/xmpp/asyncsocket.h"
+#include "webrtc/libjingle/xmpp/xmppengine.h"
+#include "webrtc/base/asyncsocket.h"
+#include "webrtc/base/buffer.h"
+#include "webrtc/base/sigslot.h"
+
+// The below define selects the SSLStreamAdapter implementation for
+// SSL, as opposed to the SSLAdapter socket adapter.
+// #define USE_SSLSTREAM
+
+namespace rtc {
+ class StreamInterface;
+ class SocketAddress;
+};
+extern rtc::AsyncSocket* cricket_socket_;
+
+namespace buzz {
+
+class XmppSocket : public buzz::AsyncSocket, public sigslot::has_slots<> {
+public:
+ XmppSocket(buzz::TlsOptions tls);
+ ~XmppSocket();
+
+ virtual buzz::AsyncSocket::State state();
+ virtual buzz::AsyncSocket::Error error();
+ virtual int GetError();
+
+ virtual bool Connect(const rtc::SocketAddress& addr);
+ virtual bool Read(char * data, size_t len, size_t* len_read);
+ virtual bool Write(const char * data, size_t len);
+ virtual bool Close();
+ virtual bool StartTls(const std::string & domainname);
+
+ sigslot::signal1<int> SignalCloseEvent;
+
+private:
+ void CreateCricketSocket(int family);
+#ifndef USE_SSLSTREAM
+ void OnReadEvent(rtc::AsyncSocket * socket);
+ void OnWriteEvent(rtc::AsyncSocket * socket);
+ void OnConnectEvent(rtc::AsyncSocket * socket);
+ void OnCloseEvent(rtc::AsyncSocket * socket, int error);
+#else // USE_SSLSTREAM
+ void OnEvent(rtc::StreamInterface* stream, int events, int err);
+#endif // USE_SSLSTREAM
+
+ rtc::AsyncSocket * cricket_socket_;
+#ifdef USE_SSLSTREAM
+ rtc::StreamInterface *stream_;
+#endif // USE_SSLSTREAM
+ buzz::AsyncSocket::State state_;
+ rtc::Buffer buffer_;
+ buzz::TlsOptions tls_;
+};
+
+} // namespace buzz
+
+#endif // WEBRTC_LIBJINGLE_XMPP_XMPPSOCKET_H_
+
« no previous file with comments | « webrtc/libjingle/xmpp/xmpppump.cc ('k') | webrtc/libjingle/xmpp/xmppsocket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698