Depend on stored sync session GUID for Android.
[chromium-blink-merge.git] / cc / thread_impl.h
blob46f7128e94eef060f33ed0e1e8752734dd22b349
1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_THREAD_IMPL_H_
6 #define CC_THREAD_IMPL_H_
8 #include "base/callback.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop_proxy.h"
11 #include "cc/cc_export.h"
12 #include "cc/thread.h"
14 namespace cc {
16 // Implements cc::Thread in terms of base::MessageLoopProxy.
17 class CC_EXPORT ThreadImpl : public Thread {
18 public:
19 // Creates a ThreadImpl wrapping the current thread.
20 static scoped_ptr<cc::Thread> createForCurrentThread();
22 // Creates a Thread wrapping a non-current thread.
23 static scoped_ptr<cc::Thread> createForDifferentThread(scoped_refptr<base::MessageLoopProxy> thread);
25 virtual ~ThreadImpl();
27 // cc::Thread implementation
28 virtual void postTask(base::Closure cb) OVERRIDE;
29 virtual void postDelayedTask(base::Closure cb, long long delayMs) OVERRIDE;
30 virtual bool belongsToCurrentThread() const OVERRIDE;
32 private:
33 explicit ThreadImpl(scoped_refptr<base::MessageLoopProxy> thread);
35 scoped_refptr<base::MessageLoopProxy> m_thread;
38 } // namespace cc
40 #endif // CC_THREAD_IMPL_H_