diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-29 19:22:51 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-29 19:22:51 +0000 |
commit | db9f091c5b80f687d231b8cb13dde2f7e964700b (patch) | |
tree | 3a2f406186a39dc7cb84fa2786293538be111c02 /base | |
parent | 8275835e508fb36328dd79c338d31bbf98eadf56 (diff) | |
download | chromium_src-db9f091c5b80f687d231b8cb13dde2f7e964700b.zip chromium_src-db9f091c5b80f687d231b8cb13dde2f7e964700b.tar.gz chromium_src-db9f091c5b80f687d231b8cb13dde2f7e964700b.tar.bz2 |
Create a new base/message_loop directory and move the message_loop_proxy.
Eventually we'll move all the message loop and message pump classes into this
directory. This leaves a forwarding header to avoid having to update all
includes in this patch.
BUG=
Review URL: https://codereview.chromium.org/13333003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191422 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/base.gyp | 4 | ||||
-rw-r--r-- | base/base.gypi | 8 | ||||
-rw-r--r-- | base/message_loop.cc | 2 | ||||
-rw-r--r-- | base/message_loop/message_loop_proxy.cc (renamed from base/message_loop_proxy.cc) | 2 | ||||
-rw-r--r-- | base/message_loop/message_loop_proxy.h | 38 | ||||
-rw-r--r-- | base/message_loop/message_loop_proxy_impl.cc (renamed from base/message_loop_proxy_impl.cc) | 2 | ||||
-rw-r--r-- | base/message_loop/message_loop_proxy_impl.h (renamed from base/message_loop_proxy_impl.h) | 6 | ||||
-rw-r--r-- | base/message_loop/message_loop_proxy_impl_unittest.cc (renamed from base/message_loop_proxy_impl_unittest.cc) | 39 | ||||
-rw-r--r-- | base/message_loop/message_loop_proxy_unittest.cc (renamed from base/message_loop_proxy_unittest.cc) | 2 | ||||
-rw-r--r-- | base/message_loop_proxy.h | 39 |
10 files changed, 76 insertions, 66 deletions
diff --git a/base/base.gyp b/base/base.gyp index 912aefe..ea04cae 100644 --- a/base/base.gyp +++ b/base/base.gyp @@ -513,8 +513,8 @@ 'memory/singleton_unittest.cc', 'memory/weak_ptr_unittest.cc', 'memory/weak_ptr_unittest.nc', - 'message_loop_proxy_impl_unittest.cc', - 'message_loop_proxy_unittest.cc', + 'message_loop/message_loop_proxy_impl_unittest.cc', + 'message_loop/message_loop_proxy_unittest.cc', 'message_loop_unittest.cc', 'message_pump_glib_unittest.cc', 'message_pump_io_ios_unittest.cc', diff --git a/base/base.gypi b/base/base.gypi index 7b97c11..325dc6c 100644 --- a/base/base.gypi +++ b/base/base.gypi @@ -281,12 +281,12 @@ 'memory/singleton.h', 'memory/weak_ptr.cc', 'memory/weak_ptr.h', + 'message_loop/message_loop_proxy.cc', + 'message_loop/message_loop_proxy.h', + 'message_loop/message_loop_proxy_impl.cc', + 'message_loop/message_loop_proxy_impl.h', 'message_loop.cc', 'message_loop.h', - 'message_loop_proxy.cc', - 'message_loop_proxy.h', - 'message_loop_proxy_impl.cc', - 'message_loop_proxy_impl.h', 'message_pump.cc', 'message_pump.h', 'message_pump_android.cc', diff --git a/base/message_loop.cc b/base/message_loop.cc index f9ecd410e..544f1d4 100644 --- a/base/message_loop.cc +++ b/base/message_loop.cc @@ -13,7 +13,7 @@ #include "base/lazy_instance.h" #include "base/logging.h" #include "base/memory/scoped_ptr.h" -#include "base/message_loop_proxy_impl.h" +#include "base/message_loop/message_loop_proxy_impl.h" #include "base/message_pump_default.h" #include "base/metrics/histogram.h" #include "base/metrics/statistics_recorder.h" diff --git a/base/message_loop_proxy.cc b/base/message_loop/message_loop_proxy.cc index 755564b..e5f0142 100644 --- a/base/message_loop_proxy.cc +++ b/base/message_loop/message_loop_proxy.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/message_loop_proxy.h" +#include "base/message_loop/message_loop_proxy.h" #include "base/bind.h" diff --git a/base/message_loop/message_loop_proxy.h b/base/message_loop/message_loop_proxy.h new file mode 100644 index 0000000..4ace802 --- /dev/null +++ b/base/message_loop/message_loop_proxy.h @@ -0,0 +1,38 @@ +// Copyright (c) 2012 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. + +#ifndef BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_H_ +#define BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_H_ + +#include "base/base_export.h" +#include "base/compiler_specific.h" +#include "base/memory/ref_counted.h" +#include "base/single_thread_task_runner.h" + +namespace base { + +// This class provides a thread-safe refcounted interface to the Post* methods +// of a message loop. This class can outlive the target message loop. +// MessageLoopProxy objects are constructed automatically for all MessageLoops. +// So, to access them, you can use any of the following: +// Thread::message_loop_proxy() +// MessageLoop::current()->message_loop_proxy() +// MessageLoopProxy::current() +// +// TODO(akalin): Now that we have the *TaskRunner interfaces, we can +// merge this with MessageLoopProxyImpl. +class BASE_EXPORT MessageLoopProxy : public SingleThreadTaskRunner { + public: + // Gets the MessageLoopProxy for the current message loop, creating one if + // needed. + static scoped_refptr<MessageLoopProxy> current(); + + protected: + MessageLoopProxy(); + virtual ~MessageLoopProxy(); +}; + +} // namespace base + +#endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_H_ diff --git a/base/message_loop_proxy_impl.cc b/base/message_loop/message_loop_proxy_impl.cc index b4ca210..7dc8caa 100644 --- a/base/message_loop_proxy_impl.cc +++ b/base/message_loop/message_loop_proxy_impl.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/message_loop_proxy_impl.h" +#include "base/message_loop/message_loop_proxy_impl.h" #include "base/location.h" #include "base/threading/thread_restrictions.h" diff --git a/base/message_loop_proxy_impl.h b/base/message_loop/message_loop_proxy_impl.h index 2bcd8fd..7da99e2 100644 --- a/base/message_loop_proxy_impl.h +++ b/base/message_loop/message_loop_proxy_impl.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef BASE_MESSAGE_LOOP_PROXY_IMPL_H_ -#define BASE_MESSAGE_LOOP_PROXY_IMPL_H_ +#ifndef BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_IMPL_H_ +#define BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_IMPL_H_ #include "base/base_export.h" #include "base/message_loop.h" @@ -59,4 +59,4 @@ class BASE_EXPORT MessageLoopProxyImpl : public MessageLoopProxy { } // namespace base -#endif // BASE_MESSAGE_LOOP_PROXY_IMPL_H_ +#endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_IMPL_H_ diff --git a/base/message_loop_proxy_impl_unittest.cc b/base/message_loop/message_loop_proxy_impl_unittest.cc index e120b39..4c88887 100644 --- a/base/message_loop_proxy_impl_unittest.cc +++ b/base/message_loop/message_loop_proxy_impl_unittest.cc @@ -2,16 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/message_loop_proxy_impl.h" +#include "base/message_loop/message_loop_proxy_impl.h" #include "base/bind.h" #include "base/memory/scoped_ptr.h" #include "base/message_loop.h" -#include "base/message_loop_proxy.h" +#include "base/message_loop/message_loop_proxy.h" #include "base/threading/thread.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" +namespace base { class MessageLoopProxyImplTest : public testing::Test { public: @@ -27,19 +28,19 @@ class MessageLoopProxyImplTest : public testing::Test { void AssertOnIOThread() const { ASSERT_TRUE(io_thread_->message_loop_proxy()->BelongsToCurrentThread()); ASSERT_EQ(io_thread_->message_loop_proxy(), - base::MessageLoopProxy::current()); + MessageLoopProxy::current()); } void AssertOnFileThread() const { ASSERT_TRUE(file_thread_->message_loop_proxy()->BelongsToCurrentThread()); ASSERT_EQ(file_thread_->message_loop_proxy(), - base::MessageLoopProxy::current()); + MessageLoopProxy::current()); } protected: virtual void SetUp() OVERRIDE { - io_thread_.reset(new base::Thread("MessageLoopProxyImplTest_IO")); - file_thread_.reset(new base::Thread("MessageLoopProxyImplTest_File")); + io_thread_.reset(new Thread("MessageLoopProxyImplTest_IO")); + file_thread_.reset(new Thread("MessageLoopProxyImplTest_File")); io_thread_->Start(); file_thread_->Start(); } @@ -71,8 +72,8 @@ class MessageLoopProxyImplTest : public testing::Test { MessageLoopProxyImplTest* test_; }; - scoped_ptr<base::Thread> io_thread_; - scoped_ptr<base::Thread> file_thread_; + scoped_ptr<Thread> io_thread_; + scoped_ptr<Thread> file_thread_; private: mutable MessageLoop loop_; @@ -92,35 +93,37 @@ TEST_F(MessageLoopProxyImplTest, Delete) { TEST_F(MessageLoopProxyImplTest, PostTask) { EXPECT_TRUE(file_thread_->message_loop_proxy()->PostTask( - FROM_HERE, base::Bind(&MessageLoopProxyImplTest::BasicFunction, - base::Unretained(this)))); + FROM_HERE, Bind(&MessageLoopProxyImplTest::BasicFunction, + Unretained(this)))); MessageLoop::current()->Run(); } TEST_F(MessageLoopProxyImplTest, PostTaskAfterThreadExits) { - scoped_ptr<base::Thread> test_thread( - new base::Thread("MessageLoopProxyImplTest_Dummy")); + scoped_ptr<Thread> test_thread( + new Thread("MessageLoopProxyImplTest_Dummy")); test_thread->Start(); - scoped_refptr<base::MessageLoopProxy> message_loop_proxy = + scoped_refptr<MessageLoopProxy> message_loop_proxy = test_thread->message_loop_proxy(); test_thread->Stop(); bool ret = message_loop_proxy->PostTask( FROM_HERE, - base::Bind(&MessageLoopProxyImplTest::AssertNotRun)); + Bind(&MessageLoopProxyImplTest::AssertNotRun)); EXPECT_FALSE(ret); } TEST_F(MessageLoopProxyImplTest, PostTaskAfterThreadIsDeleted) { - scoped_refptr<base::MessageLoopProxy> message_loop_proxy; + scoped_refptr<MessageLoopProxy> message_loop_proxy; { - scoped_ptr<base::Thread> test_thread( - new base::Thread("MessageLoopProxyImplTest_Dummy")); + scoped_ptr<Thread> test_thread( + new Thread("MessageLoopProxyImplTest_Dummy")); test_thread->Start(); message_loop_proxy = test_thread->message_loop_proxy(); } bool ret = message_loop_proxy->PostTask( FROM_HERE, - base::Bind(&MessageLoopProxyImplTest::AssertNotRun)); + Bind(&MessageLoopProxyImplTest::AssertNotRun)); EXPECT_FALSE(ret); } + +} // namespace base diff --git a/base/message_loop_proxy_unittest.cc b/base/message_loop/message_loop_proxy_unittest.cc index aaabef6..e373059 100644 --- a/base/message_loop_proxy_unittest.cc +++ b/base/message_loop/message_loop_proxy_unittest.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/message_loop_proxy.h" +#include "base/message_loop/message_loop_proxy.h" #include "base/atomic_sequence_num.h" #include "base/bind.h" diff --git a/base/message_loop_proxy.h b/base/message_loop_proxy.h index ce949dd..d8a3641 100644 --- a/base/message_loop_proxy.h +++ b/base/message_loop_proxy.h @@ -1,38 +1,7 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright (c) 2013 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. -#ifndef BASE_MESSAGE_LOOP_PROXY_H_ -#define BASE_MESSAGE_LOOP_PROXY_H_ - -#include "base/base_export.h" -#include "base/compiler_specific.h" -#include "base/memory/ref_counted.h" -#include "base/single_thread_task_runner.h" - -namespace base { - -// This class provides a thread-safe refcounted interface to the Post* methods -// of a message loop. This class can outlive the target message loop. -// MessageLoopProxy objects are constructed automatically for all MessageLoops. -// So, to access them, you can use any of the following: -// Thread::message_loop_proxy() -// MessageLoop::current()->message_loop_proxy() -// MessageLoopProxy::current() -// -// TODO(akalin): Now that we have the *TaskRunner interfaces, we can -// merge this with MessageLoopProxyImpl. -class BASE_EXPORT MessageLoopProxy : public SingleThreadTaskRunner { - public: - // Gets the MessageLoopProxy for the current message loop, creating one if - // needed. - static scoped_refptr<MessageLoopProxy> current(); - - protected: - MessageLoopProxy(); - virtual ~MessageLoopProxy(); -}; - -} // namespace base - -#endif // BASE_MESSAGE_LOOP_PROXY_H_ +// TODO(brettw) remove this forwarding file when all users reference the new +// location. +#include "base/message_loop/message_loop_proxy.h" |