Index: chrome/browser/media_gallery/linux/mtp_recursive_device_object_enumerator.h |
diff --git a/chrome/browser/media_gallery/linux/mtp_recursive_device_object_enumerator.h b/chrome/browser/media_gallery/linux/mtp_recursive_device_object_enumerator.h |
index 13b5910198f9f5cddf465f0a9115c28648760a59..a6a67c40843bd88c1d7eb5966706a9d93f0a5ddf 100644 |
--- a/chrome/browser/media_gallery/linux/mtp_recursive_device_object_enumerator.h |
+++ b/chrome/browser/media_gallery/linux/mtp_recursive_device_object_enumerator.h |
@@ -5,6 +5,7 @@ |
#ifndef CHROME_BROWSER_MEDIA_GALLERY_LINUX_MTP_RECURSIVE_DEVICE_OBJECT_ENUMERATOR_H_ |
#define CHROME_BROWSER_MEDIA_GALLERY_LINUX_MTP_RECURSIVE_DEVICE_OBJECT_ENUMERATOR_H_ |
+#include <queue> |
#include <string> |
#include <vector> |
@@ -40,6 +41,10 @@ class MTPRecursiveDeviceObjectEnumerator |
virtual base::Time LastModifiedTime() OVERRIDE; |
private: |
+ typedef uint32_t DirectoryEntryId; |
+ |
+ void MaybeUpdateCurrentFileEntryList(); |
+ |
// Stores the device handle that was used to open the device. |
const std::string device_handle_; |
@@ -47,8 +52,8 @@ class MTPRecursiveDeviceObjectEnumerator |
// ReadMTPDirectoryWorker object on the correct thread. |
scoped_refptr<base::SequencedTaskRunner> media_task_runner_; |
- // List of top-level directory file entries. |
- const std::vector<MtpFileEntry> file_entries_; |
+ // List of current directory file entries. |
+ std::vector<MtpFileEntry> file_entries_; |
// Iterator to access the individual file entries. |
std::vector<MtpFileEntry>::const_iterator file_entry_iter_; |
@@ -57,6 +62,9 @@ class MTPRecursiveDeviceObjectEnumerator |
scoped_ptr<fileapi::FileSystemFileUtil::AbstractFileEnumerator> |
current_enumerator_; |
+ // Used to recursively enumerate the sub-directory objects. |
Lei Zhang
2013/01/11 06:35:44
Just say "Queue of untraversed directories."
kmadhusu
2013/01/11 22:34:22
Done.
|
+ std::queue<DirectoryEntryId> unparsed_directory_entry_ids_; |
+ |
// |media_task_runner_| can wait on this event until the requested operation |
// is complete. |
base::WaitableEvent* on_task_completed_event_; |