Chromium Code Reviews| 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_; |