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_; |