Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2197)

Unified Diff: chrome/browser/media_galleries/media_folder_finder.h

Issue 166353002: Media Galleries: Refactor media scan worker function into a worker class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/media_galleries/media_folder_finder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media_galleries/media_folder_finder.h
diff --git a/chrome/browser/media_galleries/media_folder_finder.h b/chrome/browser/media_galleries/media_folder_finder.h
index 0b7f7092b243f1c93eb8a17dc954c1594e86343b..102cc6b39affc1f41745b4a6826c5dc56d26a410 100644
--- a/chrome/browser/media_galleries/media_folder_finder.h
+++ b/chrome/browser/media_galleries/media_folder_finder.h
@@ -6,12 +6,14 @@
#define CHROME_BROWSER_MEDIA_GALLERIES_MEDIA_FOLDER_FINDER_H_
#include <map>
+#include <utility>
#include <vector>
#include "base/callback.h"
#include "base/files/file_path.h"
+#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
-#include "base/threading/sequenced_worker_pool.h"
+#include "base/sequenced_task_runner.h"
#include "chrome/browser/media_galleries/media_scan_types.h"
// MediaFolderFinder scans local hard drives and look for folders that contain
@@ -23,8 +25,6 @@ class MediaFolderFinder {
typedef base::Callback<void(bool /*success*/,
const MediaFolderFinderResults& /*results*/)>
MediaFolderFinderResultsCallback;
- typedef base::Callback<MediaGalleryScanFileType(const base::FilePath&)>
- FilterCallback;
// |callback| will get called when the scan finishes. If the object is deleted
// before it finishes, the scan will stop and |callback| will get called with
@@ -40,6 +40,10 @@ class MediaFolderFinder {
private:
friend class MediaFolderFinderTest;
+ class Worker;
+ typedef std::pair<MediaGalleryScanResult, std::vector<base::FilePath> >
vandebo (ex-Chrome) 2014/02/14 17:11:51 Please use a struct instead of a pair.
Lei Zhang 2014/02/14 20:59:23 Done.
+ WorkerReply;
+
enum ScanState {
SCAN_STATE_NOT_STARTED,
SCAN_STATE_STARTED,
@@ -53,11 +57,8 @@ class MediaFolderFinder {
// Scan a folder from |folders_to_scan_|.
void ScanFolder();
- // Callback that returns the |scan_result| for |path| and the |new_folders|
- // to scan in future calls to ScanFolder().
- void GotScanResults(const base::FilePath& path,
- const MediaGalleryScanResult* scan_result,
- const std::vector<base::FilePath>* new_folders);
+ // Callback that handles the |reply| from |worker_| for a scanned |path|.
+ void GotScanResults(const base::FilePath& path, const WorkerReply& reply);
const MediaFolderFinderResultsCallback results_callback_;
MediaFolderFinderResults results_;
@@ -65,12 +66,10 @@ class MediaFolderFinder {
std::vector<base::FilePath> folders_to_scan_;
ScanState scan_state_;
- // Token to make sure all calls with |filter_callback_| are on the same
- // sequence.
- base::SequencedWorkerPool::SequenceToken token_;
+ scoped_refptr<base::SequencedTaskRunner> worker_task_runner_;
- // Callback used to filter through files and make sure they are media files.
- FilterCallback filter_callback_;
+ // Owned by MediaFolderFinder, but lives on |worker_task_runner_|.
+ Worker* worker_;
// Set of roots to scan for testing.
bool has_roots_for_testing_;
« no previous file with comments | « no previous file | chrome/browser/media_galleries/media_folder_finder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698