| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_TASK_RUNNER_H_ | 5 #ifndef CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_TASK_RUNNER_H_ |
| 6 #define CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_TASK_RUNNER_H_ | 6 #define CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_TASK_RUNNER_H_ |
| 7 | 7 |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/sequenced_task_runner.h" | 9 #include "base/sequenced_task_runner.h" |
| 10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 | 53 |
| 54 // Returns true if the current thread is running on the given |sequence_id|. | 54 // Returns true if the current thread is running on the given |sequence_id|. |
| 55 virtual bool IsRunningOnSequence(SequenceID sequence_id) const = 0; | 55 virtual bool IsRunningOnSequence(SequenceID sequence_id) const = 0; |
| 56 bool IsRunningOnPrimarySequence() const { | 56 bool IsRunningOnPrimarySequence() const { |
| 57 return IsRunningOnSequence(PRIMARY_SEQUENCE); | 57 return IsRunningOnSequence(PRIMARY_SEQUENCE); |
| 58 } | 58 } |
| 59 bool IsRunningOnCommitSequence() const { | 59 bool IsRunningOnCommitSequence() const { |
| 60 return IsRunningOnSequence(COMMIT_SEQUENCE); | 60 return IsRunningOnSequence(COMMIT_SEQUENCE); |
| 61 } | 61 } |
| 62 | 62 |
| 63 virtual scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunner( |
| 64 SequenceID sequence_id) = 0; |
| 65 |
| 63 protected: | 66 protected: |
| 64 ~DOMStorageTaskRunner() override {} | 67 ~DOMStorageTaskRunner() override {} |
| 65 }; | 68 }; |
| 66 | 69 |
| 67 // A derived class used in chromium that utilizes a SequenceWorkerPool | 70 // A derived class used in chromium that utilizes a SequenceWorkerPool |
| 68 // under dom_storage specific SequenceTokens. The |delayed_task_loop| | 71 // under dom_storage specific SequenceTokens. The |delayed_task_loop| |
| 69 // is used to delay scheduling on the worker pool. | 72 // is used to delay scheduling on the worker pool. |
| 70 class CONTENT_EXPORT DOMStorageWorkerPoolTaskRunner : | 73 class CONTENT_EXPORT DOMStorageWorkerPoolTaskRunner : |
| 71 public DOMStorageTaskRunner { | 74 public DOMStorageTaskRunner { |
| 72 public: | 75 public: |
| 73 DOMStorageWorkerPoolTaskRunner( | 76 DOMStorageWorkerPoolTaskRunner( |
| 74 base::SequencedWorkerPool* sequenced_worker_pool, | 77 base::SequencedWorkerPool* sequenced_worker_pool, |
| 75 base::SequencedWorkerPool::SequenceToken primary_sequence_token, | 78 base::SequencedWorkerPool::SequenceToken primary_sequence_token, |
| 76 base::SequencedWorkerPool::SequenceToken commit_sequence_token, | 79 base::SequencedWorkerPool::SequenceToken commit_sequence_token, |
| 77 base::SingleThreadTaskRunner* delayed_task_task_runner); | 80 base::SingleThreadTaskRunner* delayed_task_task_runner); |
| 78 | 81 |
| 79 bool PostDelayedTask(const tracked_objects::Location& from_here, | 82 bool PostDelayedTask(const tracked_objects::Location& from_here, |
| 80 const base::Closure& task, | 83 const base::Closure& task, |
| 81 base::TimeDelta delay) override; | 84 base::TimeDelta delay) override; |
| 82 | 85 |
| 83 bool PostShutdownBlockingTask(const tracked_objects::Location& from_here, | 86 bool PostShutdownBlockingTask(const tracked_objects::Location& from_here, |
| 84 SequenceID sequence_id, | 87 SequenceID sequence_id, |
| 85 const base::Closure& task) override; | 88 const base::Closure& task) override; |
| 86 | 89 |
| 87 bool IsRunningOnSequence(SequenceID sequence_id) const override; | 90 bool IsRunningOnSequence(SequenceID sequence_id) const override; |
| 88 | 91 |
| 92 scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunner( |
| 93 SequenceID sequence_id) override; |
| 94 |
| 89 protected: | 95 protected: |
| 90 ~DOMStorageWorkerPoolTaskRunner() override; | 96 ~DOMStorageWorkerPoolTaskRunner() override; |
| 91 | 97 |
| 92 private: | 98 private: |
| 93 | 99 |
| 94 base::SequencedWorkerPool::SequenceToken IDtoToken(SequenceID id) const; | 100 base::SequencedWorkerPool::SequenceToken IDtoToken(SequenceID id) const; |
| 95 | 101 |
| 96 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 102 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| 97 const scoped_refptr<base::SequencedWorkerPool> sequenced_worker_pool_; | 103 const scoped_refptr<base::SequencedWorkerPool> sequenced_worker_pool_; |
| 98 base::SequencedWorkerPool::SequenceToken primary_sequence_token_; | 104 base::SequencedWorkerPool::SequenceToken primary_sequence_token_; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 112 bool PostDelayedTask(const tracked_objects::Location& from_here, | 118 bool PostDelayedTask(const tracked_objects::Location& from_here, |
| 113 const base::Closure& task, | 119 const base::Closure& task, |
| 114 base::TimeDelta delay) override; | 120 base::TimeDelta delay) override; |
| 115 | 121 |
| 116 bool PostShutdownBlockingTask(const tracked_objects::Location& from_here, | 122 bool PostShutdownBlockingTask(const tracked_objects::Location& from_here, |
| 117 SequenceID sequence_id, | 123 SequenceID sequence_id, |
| 118 const base::Closure& task) override; | 124 const base::Closure& task) override; |
| 119 | 125 |
| 120 bool IsRunningOnSequence(SequenceID sequence_id) const override; | 126 bool IsRunningOnSequence(SequenceID sequence_id) const override; |
| 121 | 127 |
| 128 scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunner( |
| 129 SequenceID sequence_id) override; |
| 130 |
| 122 protected: | 131 protected: |
| 123 ~MockDOMStorageTaskRunner() override; | 132 ~MockDOMStorageTaskRunner() override; |
| 124 | 133 |
| 125 private: | 134 private: |
| 126 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 135 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| 127 }; | 136 }; |
| 128 | 137 |
| 129 } // namespace content | 138 } // namespace content |
| 130 | 139 |
| 131 #endif // CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_TASK_RUNNER_H_ | 140 #endif // CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_TASK_RUNNER_H_ |
| OLD | NEW |