Index: cc/resources/worker_pool.h |
diff --git a/cc/resources/worker_pool.h b/cc/resources/worker_pool.h |
index 57bc774c082b8d19307f30e4876f1cba54d0f4b8..01fb625240d669aba56647cf9bf48e018de9dc5f 100644 |
--- a/cc/resources/worker_pool.h |
+++ b/cc/resources/worker_pool.h |
@@ -47,6 +47,39 @@ class CC_EXPORT WorkerPoolTask |
bool did_complete_; |
}; |
+class CC_EXPORT GraphNode { |
+ public: |
+ typedef std::vector<GraphNode*> Vector; |
+ |
+ GraphNode(internal::WorkerPoolTask* task, unsigned priority); |
+ ~GraphNode(); |
+ |
+ WorkerPoolTask* task() { return task_; } |
+ |
+ void add_dependent(GraphNode* dependent) { |
+ DCHECK(dependent); |
+ dependents_.push_back(dependent); |
+ } |
+ const Vector& dependents() const { return dependents_; } |
+ |
+ unsigned priority() const { return priority_; } |
+ |
+ unsigned num_dependencies() const { return num_dependencies_; } |
+ void add_dependency() { ++num_dependencies_; } |
+ void remove_dependency() { |
+ DCHECK(num_dependencies_); |
+ --num_dependencies_; |
+ } |
+ |
+ private: |
+ WorkerPoolTask* task_; |
+ Vector dependents_; |
+ unsigned priority_; |
+ unsigned num_dependencies_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(GraphNode); |
+}; |
+ |
} // namespace internal |
} // namespace cc |
@@ -76,49 +109,12 @@ class CC_EXPORT WorkerPool { |
virtual void CheckForCompletedTasks(); |
protected: |
- class CC_EXPORT GraphNode { |
- public: |
- typedef std::vector<GraphNode*> Vector; |
- |
- GraphNode(); |
- ~GraphNode(); |
- |
- void set_task(internal::WorkerPoolTask* task) { task_ = task; } |
- internal::WorkerPoolTask* task() { return task_; } |
- |
- void add_dependent(GraphNode* dependent) { |
- DCHECK(dependent); |
- dependents_.push_back(dependent); |
- } |
- const Vector& dependents() const { |
- return dependents_; |
- } |
- |
- void set_priority(unsigned priority) { priority_ = priority; } |
- unsigned priority() const { return priority_; } |
- |
- unsigned num_dependencies() const { |
- return num_dependencies_; |
- } |
- void add_dependency() { ++num_dependencies_; } |
- void remove_dependency() { |
- DCHECK(num_dependencies_); |
- --num_dependencies_; |
- } |
- |
- private: |
- internal::WorkerPoolTask* task_; |
- Vector dependents_; |
- unsigned priority_; |
- unsigned num_dependencies_; |
- |
- DISALLOW_COPY_AND_ASSIGN(GraphNode); |
- }; |
// A task graph contains a unique set of tasks with edges between |
// dependencies pointing in the direction of the dependents. Each task |
// need to be assigned a unique priority and a run count that matches |
// the number of dependencies. |
- typedef ScopedPtrHashMap<internal::WorkerPoolTask*, GraphNode> GraphNodeMap; |
+ typedef ScopedPtrHashMap<internal::WorkerPoolTask*, internal::GraphNode> |
+ GraphNodeMap; |
typedef GraphNodeMap TaskGraph; |
WorkerPool(size_t num_threads, const std::string& thread_name_prefix); |