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

Unified Diff: remoting/jingle_glue/jingle_thread.cc

Issue 7302002: Make JingleThreadMessageLoop usable without JingleThread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 6 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: remoting/jingle_glue/jingle_thread.cc
diff --git a/remoting/jingle_glue/jingle_thread.cc b/remoting/jingle_glue/jingle_thread.cc
index 9dc3915a3b9f4fc6d1fa40a8bcd1d9c2101827bb..7c2b868347ec4b0a071d21e38dc2da0c43543a8d 100644
--- a/remoting/jingle_glue/jingle_thread.cc
+++ b/remoting/jingle_glue/jingle_thread.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -15,10 +15,14 @@ namespace remoting {
const uint32 kRunTasksMessageId = 1;
const uint32 kStopMessageId = 2;
-class JingleThread::JingleMessagePump : public base::MessagePump,
- public talk_base::MessageHandler {
+namespace {
+
+class JingleMessagePump : public base::MessagePump,
+ public talk_base::MessageHandler {
public:
- JingleMessagePump(JingleThread* thread) : thread_(thread) { }
+ JingleMessagePump(talk_base::Thread* thread, MessageLoop* message_loop)
+ : thread_(thread), message_loop_(message_loop) {
+ }
virtual void Run(Delegate* delegate) { NOTIMPLEMENTED(); }
virtual void Quit() { NOTIMPLEMENTED(); }
@@ -41,7 +45,7 @@ class JingleThread::JingleMessagePump : public base::MessagePump,
// JingleMessagePump posts new tasks in the jingle thread.
// TODO(sergeyu): Remove it when JingleThread moved on Chromium's
// base::Thread.
- base::MessagePump::Delegate* delegate = thread_->message_loop();
+ base::MessagePump::Delegate* delegate = message_loop_;
// Process all pending tasks.
while (true) {
if (delegate->DoWork())
@@ -56,7 +60,7 @@ class JingleThread::JingleMessagePump : public base::MessagePump,
private:
void ScheduleNextDelayedTask() {
- DCHECK_EQ(thread_->message_loop(), MessageLoop::current());
+ DCHECK_EQ(message_loop_, MessageLoop::current());
if (!delayed_work_time_.is_null()) {
base::TimeTicks now = base::TimeTicks::Now();
@@ -69,27 +73,24 @@ class JingleThread::JingleMessagePump : public base::MessagePump,
}
}
- JingleThread* thread_;
+ talk_base::Thread* thread_;
+ MessageLoop* message_loop_;
Wez 2011/07/01 20:33:00 Normally the pump is created by the relevant Messa
Sergey Ulanov 2011/07/01 21:14:28 No, because nobody ever calls Run() on this Pump.
base::TimeTicks delayed_work_time_;
};
-class JingleThread::JingleMessageLoop : public MessageLoop {
- public:
- JingleMessageLoop(JingleThread* thread)
- : MessageLoop(MessageLoop::TYPE_IO) {
- pump_ = new JingleMessagePump(thread);
- }
+} // namespace
- void Initialize() {
- jingle_message_loop_state_.reset(new AutoRunState(this));
- }
+JingleThreadMessageLoop::JingleThreadMessageLoop(talk_base::Thread* thread)
+ : MessageLoop(MessageLoop::TYPE_IO) {
+ pump_ = new JingleMessagePump(thread, this);
+}
- private:
- // AutoRunState sets |state_| for this message loop. It needs to be
- // created here because we never call Run() or RunAllPending() for
- // the thread.
- scoped_ptr<AutoRunState> jingle_message_loop_state_;
-};
+JingleThreadMessageLoop::~JingleThreadMessageLoop() {
+}
+
+void JingleThreadMessageLoop::Initialize() {
+ jingle_message_loop_state_.reset(new AutoRunState(this));
+}
TaskPump::TaskPump() {
}
@@ -121,7 +122,7 @@ void JingleThread::Start() {
}
void JingleThread::Run() {
- JingleMessageLoop message_loop(this);
+ JingleThreadMessageLoop message_loop(this);
message_loop.Initialize();
message_loop_ = &message_loop;
« remoting/jingle_glue/jingle_thread.h ('K') | « remoting/jingle_glue/jingle_thread.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698