summaryrefslogtreecommitdiffstats
path: root/chromium/mojo/shell/task_runners.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/mojo/shell/task_runners.h')
-rw-r--r--chromium/mojo/shell/task_runners.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/chromium/mojo/shell/task_runners.h b/chromium/mojo/shell/task_runners.h
new file mode 100644
index 00000000000..7331fa8e524
--- /dev/null
+++ b/chromium/mojo/shell/task_runners.h
@@ -0,0 +1,53 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MOJO_SHELL_TASK_RUNNERS_H_
+#define MOJO_SHELL_TASK_RUNNERS_H_
+
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/message_loop/message_loop_proxy.h"
+#include "base/threading/thread.h"
+
+namespace base {
+class SequencedWorkerPool;
+}
+
+namespace mojo {
+namespace shell {
+
+// A context object that contains the common task runners for the shell's main
+// process.
+class TaskRunners {
+ public:
+ explicit TaskRunners(base::SingleThreadTaskRunner* ui_runner);
+ ~TaskRunners();
+
+ base::SingleThreadTaskRunner* ui_runner() const {
+ return ui_runner_.get();
+ }
+
+ base::SingleThreadTaskRunner* io_runner() const {
+ return io_thread_->message_loop_proxy();
+ }
+
+ base::SequencedWorkerPool* blocking_pool() const {
+ return blocking_pool_.get();
+ }
+
+ private:
+ // TODO(beng): should this be named shell_runner_?
+ scoped_refptr<base::SingleThreadTaskRunner> ui_runner_;
+ scoped_ptr<base::Thread> io_thread_;
+
+ scoped_refptr<base::SequencedWorkerPool> blocking_pool_;
+
+ DISALLOW_COPY_AND_ASSIGN(TaskRunners);
+};
+
+} // namespace shell
+} // namespace mojo
+
+#endif // MOJO_SHELL_TASK_RUNNERS_H_