Test upload from mkearney.
[chromium-blink-merge.git] / cc / CCThread.h
blobd375932cd42dbc5de072cb314bdefab576a2a1d6
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 CCThread_h
6 #define CCThread_h
8 #include <wtf/PassOwnPtr.h>
9 #include <wtf/Threading.h>
11 namespace WebCore {
13 // CCThread provides basic infrastructure for messaging with the compositor in a
14 // platform-neutral way.
15 class CCThread {
16 public:
17 virtual ~CCThread() { }
19 class Task {
20 WTF_MAKE_NONCOPYABLE(Task);
21 public:
22 virtual ~Task() { }
23 virtual void performTask() = 0;
24 void* instance() const { return m_instance; }
25 protected:
26 Task(void* instance) : m_instance(instance) { }
27 void* m_instance;
30 // Executes the task on context's thread asynchronously.
31 virtual void postTask(PassOwnPtr<Task>) = 0;
33 // Executes the task after the specified delay.
34 virtual void postDelayedTask(PassOwnPtr<Task>, long long delayMs) = 0;
36 virtual WTF::ThreadIdentifier threadID() const = 0;
41 #endif