| Index: base/message_loop/message_loop_proxy_impl.h
|
| diff --git a/base/message_loop/message_loop_proxy_impl.h b/base/message_loop/message_loop_proxy_impl.h
|
| index 6d6f0f69dbd0f4f07f6830d7a1ab00037ce35f7f..b7f62b9770d5059e0e0e22b31b9d301d24410812 100644
|
| --- a/base/message_loop/message_loop_proxy_impl.h
|
| +++ b/base/message_loop/message_loop_proxy_impl.h
|
| @@ -6,17 +6,24 @@
|
| #define BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_IMPL_H_
|
|
|
| #include "base/base_export.h"
|
| -#include "base/message_loop/message_loop.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/message_loop/message_loop_proxy.h"
|
| -#include "base/synchronization/lock.h"
|
| +#include "base/pending_task.h"
|
| +#include "base/threading/platform_thread.h"
|
|
|
| namespace base {
|
| +namespace internal {
|
| +
|
| +class IncomingTaskQueue;
|
|
|
| // A stock implementation of MessageLoopProxy that is created and managed by a
|
| // MessageLoop. For now a MessageLoopProxyImpl can only be created as part of a
|
| // MessageLoop.
|
| class BASE_EXPORT MessageLoopProxyImpl : public MessageLoopProxy {
|
| public:
|
| + explicit MessageLoopProxyImpl(
|
| + scoped_refptr<IncomingTaskQueue> incoming_queue);
|
| +
|
| // MessageLoopProxy implementation
|
| virtual bool PostDelayedTask(const tracked_objects::Location& from_here,
|
| const base::Closure& task,
|
| @@ -27,36 +34,20 @@ class BASE_EXPORT MessageLoopProxyImpl : public MessageLoopProxy {
|
| base::TimeDelta delay) OVERRIDE;
|
| virtual bool RunsTasksOnCurrentThread() const OVERRIDE;
|
|
|
| - protected:
|
| - virtual ~MessageLoopProxyImpl();
|
| -
|
| - // Override OnDestruct so that we can delete the object on the target message
|
| - // loop if it still exists.
|
| - virtual void OnDestruct() const OVERRIDE;
|
| -
|
| private:
|
| - // Allow the MessageLoop to create a MessageLoopProxyImpl.
|
| - friend class MessageLoop;
|
| - friend class DeleteHelper<MessageLoopProxyImpl>;
|
| -
|
| - MessageLoopProxyImpl();
|
| -
|
| - // Called directly by MessageLoop::~MessageLoop.
|
| - virtual void WillDestroyCurrentMessageLoop();
|
| -
|
| + friend class RefCountedThreadSafe<MessageLoopProxyImpl>;
|
| + virtual ~MessageLoopProxyImpl();
|
|
|
| - bool PostTaskHelper(const tracked_objects::Location& from_here,
|
| - const base::Closure& task,
|
| - base::TimeDelta delay,
|
| - bool nestable);
|
| + // THe incoming queue receiving all posted tasks.
|
| + scoped_refptr<IncomingTaskQueue> incoming_queue_;
|
|
|
| - // The lock that protects access to target_message_loop_.
|
| - mutable base::Lock message_loop_lock_;
|
| - MessageLoop* target_message_loop_;
|
| + // ID of the thread |this| was created on.
|
| + PlatformThreadId valid_thread_id_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MessageLoopProxyImpl);
|
| };
|
|
|
| +} // namespace internal
|
| } // namespace base
|
|
|
| #endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_PROXY_IMPL_H_
|
|
|