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

Unified Diff: third_party/libjingle/overrides/talk/base/messagequeue.cc

Issue 9455070: Remove the dependency to ws2_32.dll from talk_base::ThreadManager and talk_base::Thread. (Closed) Base URL: https://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 10 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
Index: third_party/libjingle/overrides/talk/base/messagequeue.cc
===================================================================
--- third_party/libjingle/overrides/talk/base/messagequeue.cc (revision 123769)
+++ third_party/libjingle/overrides/talk/base/messagequeue.cc (working copy)
@@ -44,6 +44,28 @@
const uint32 kMaxMsgLatency = 150; // 150 ms
//------------------------------------------------------------------
+// DummySocketServer
+
+class DummySocketServer : public talk_base::SocketServer {
+ virtual bool Wait(int cms, bool process_io) OVERRIDE {
+ return false;
+ }
+
+ virtual void WakeUp() OVERRIDE {
+ }
+
+ virtual talk_base::Socket* CreateSocket(int type) OVERRIDE {
+ return NULL;
+ }
+
+ // Returns a new socket for nonblocking communication. The type can be
+ // SOCK_DGRAM and SOCK_STREAM.
+ virtual talk_base::AsyncSocket* CreateAsyncSocket(int type) OVERRIDE {
+ return NULL;
+ }
+};
+
+//------------------------------------------------------------------
// MessageQueueManager
MessageQueueManager* MessageQueueManager::instance_;
@@ -105,18 +127,29 @@
//------------------------------------------------------------------
// MessageQueue
-MessageQueue::MessageQueue(SocketServer* ss)
- : ss_(ss), fStop_(false), fPeekKeep_(false), active_(false),
- dmsgq_next_num_(0) {
- if (!ss_) {
- // Currently, MessageQueue holds a socket server, and is the base class for
- // Thread. It seems like it makes more sense for Thread to hold the socket
- // server, and provide it to the MessageQueue, since the Thread controls
- // the I/O model, and MQ is agnostic to those details. Anyway, this causes
- // messagequeue_unittest to depend on network libraries... yuck.
- default_ss_.reset(new PhysicalSocketServer());
- ss_ = default_ss_.get();
+MessageQueue::MessageQueue() {
+ // Currently, MessageQueue holds a socket server, and is the base class for
+ // Thread. It seems like it makes more sense for Thread to hold the socket
+ // server, and provide it to the MessageQueue, since the Thread controls
+ // the I/O model, and MQ is agnostic to those details. Anyway, this causes
+ // messagequeue_unittest to depend on network libraries... yuck.
+ default_ss_.reset(new PhysicalSocketServer());
+ Construct();
+}
+
+MessageQueue::MessageQueue(SocketServer* ss) {
+ if (!ss) {
+ default_ss_.reset(new DummySocketServer());
}
+ Construct();
+}
+
+void MessageQueue::Construct() {
+ fStop_ = false;
+ fPeekKeep_ = false;
+ active_ = false;
+ dmsgq_next_num_ = 0;
+ ss_ = default_ss_.get();
ss_->SetMessageQueue(this);
}

Powered by Google App Engine
This is Rietveld 408576698