From dc57ec8f32abfe97c712cffbfed17be1f6e5f1ac Mon Sep 17 00:00:00 2001 From: "tzik@chromium.org" Date: Tue, 7 Aug 2012 03:50:10 +0000 Subject: Move {Native,Device}MediaFileUtil from FILE thread to SequencedWorkerPool to avoid it blocks other I/O. BUG=139187 Review URL: https://chromiumcodereview.appspot.com/10829147 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150252 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/fileapi/file_system_task_runners.h | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 webkit/fileapi/file_system_task_runners.h (limited to 'webkit/fileapi/file_system_task_runners.h') diff --git a/webkit/fileapi/file_system_task_runners.h b/webkit/fileapi/file_system_task_runners.h new file mode 100644 index 0000000..219e2af --- /dev/null +++ b/webkit/fileapi/file_system_task_runners.h @@ -0,0 +1,53 @@ +// Copyright (c) 2012 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 WEBKIT_FILEAPI_FILE_SYSTEM_TASK_RUNNERS_H_ +#define WEBKIT_FILEAPI_FILE_SYSTEM_TASK_RUNNERS_H_ + +#include "base/memory/ref_counted.h" +#include "base/memory/scoped_ptr.h" +#include "webkit/fileapi/fileapi_export.h" + +namespace base { +class SequencedTaskRunner; +class SingleThreadTaskRunner; +} // namespace + +namespace fileapi { + +// This class holds task runners used for filesystem related stuff. +class FILEAPI_EXPORT FileSystemTaskRunners { + public: + FileSystemTaskRunners( + base::SingleThreadTaskRunner* io_task_runner, + base::SingleThreadTaskRunner* file_task_runner, + base::SequencedTaskRunner* media_task_runner); + + ~FileSystemTaskRunners(); + + static scoped_ptr CreateMockTaskRunners(); + + base::SingleThreadTaskRunner* io_task_runner() { + return io_task_runner_.get(); + } + + base::SingleThreadTaskRunner* file_task_runner() { + return file_task_runner_.get(); + } + + base::SequencedTaskRunner* media_task_runner() { + return media_task_runner_.get(); + } + + private: + scoped_refptr io_task_runner_; + scoped_refptr file_task_runner_; + scoped_refptr media_task_runner_; + + DISALLOW_COPY_AND_ASSIGN(FileSystemTaskRunners); +}; + +} // namespace fileapi + +#endif // WEBKIT_FILEAPI_FILE_SYSTEM_TASK_RUNNERS_H_ -- cgit v1.1