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

Unified Diff: webkit/fileapi/media/mtp_device_map_service.h

Issue 11358243: Redesigned and refactored ScopedMTPDeviceMapEntry, MTPDeviceMapService & MTPDeviceDelegate classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test Created 8 years, 1 month 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
Index: webkit/fileapi/media/mtp_device_map_service.h
diff --git a/webkit/fileapi/media/mtp_device_map_service.h b/webkit/fileapi/media/mtp_device_map_service.h
index 3002097ad7963f4361317e850148ba163c46d64f..87f00cbc4fd5fbab6a810e478f20efeee6ca135c 100644
--- a/webkit/fileapi/media/mtp_device_map_service.h
+++ b/webkit/fileapi/media/mtp_device_map_service.h
@@ -8,8 +8,8 @@
#include <map>
#include "base/file_path.h"
-#include "base/memory/ref_counted.h"
#include "base/memory/singleton.h"
+#include "base/memory/weak_ptr.h"
#include "base/threading/thread_checker.h"
#include "webkit/storage/webkit_storage_export.h"
@@ -17,43 +17,43 @@ namespace fileapi {
class MTPDeviceDelegate;
-// Helper class to manage media device delegates which can communicate with mtp
-// devices to complete media file system operations.
+// This class provides media transfer protocol(MTP) device delegate to
Lei Zhang 2012/11/21 01:33:30 nit: space after protocol
kmadhusu 2012/11/21 04:09:53 Done.
+// complete media file system operations. ScopedMTPDeviceMapEntry class
Lei Zhang 2012/11/21 01:33:30 I think it's fine to mention related classes, but
kmadhusu 2012/11/21 04:09:53 Done.
+// manages the device map entries. This class operates on the IO thread.
class WEBKIT_STORAGE_EXPORT MTPDeviceMapService {
public:
static MTPDeviceMapService* GetInstance();
- // Adds the media device delegate for the given |device_location|. Called on
- // IO thread.
+ // Called from ScopedMTPDeviceMapEntry constructor to add the delegate for the
+ // MTP device specified by |device_location|. Called on the IO thread.
void AddDelegate(const FilePath::StringType& device_location,
- scoped_refptr<MTPDeviceDelegate> delegate);
+ MTPDeviceDelegate* delegate);
- // Removes the media device delegate for the given |device_location| if
- // exists. Called on IO thread.
+ // Called from ScopedMTPDeviceMapEntry destructor to remove the delegate for
+ // the MTP device specified by |device_location|. Called on the IO thread.
void RemoveDelegate(const FilePath::StringType& device_location);
// Gets the media device delegate associated with |filesystem_id|.
// Return NULL if the |filesystem_id| is no longer valid (e.g. because the
- // corresponding device is detached etc). Called on IO thread.
- MTPDeviceDelegate* GetMTPDeviceDelegate(const std::string& filesystem_id);
+ // corresponding device is detached etc). Called by
+ // IsolatedMountPointProvider::CreateFileSystemOperation() on IO thread.
+ MTPDeviceDelegate* GetMTPDeviceDelegate(const std::string& filesystem_id);
private:
friend struct DefaultSingletonTraits<MTPDeviceMapService>;
- typedef scoped_refptr<MTPDeviceDelegate> MTPDeviceDelegateObj;
-
- // Mapping of device_location and MTPDeviceDelegate object.
- typedef std::map<FilePath::StringType, MTPDeviceDelegateObj> DelegateMap;
+ // Mapping of device_location and MTPDeviceDelegate* object. It is safe to
+ // store and access the raw pointer. This class operates on the IO thread.
+ typedef std::map<FilePath::StringType, MTPDeviceDelegate*> DelegateMap;
// Get access to this class using GetInstance() method.
MTPDeviceMapService();
~MTPDeviceMapService();
- // Stores a map of attached mtp device delegates.
+ // Map of attached mtp device delegates.
DelegateMap delegate_map_;
- // Stores a |thread_checker_| object to verify all methods of this class are
- // called on same thread.
+ // Object to verify all methods of this class are called on the same thread.
base::ThreadChecker thread_checker_;
DISALLOW_COPY_AND_ASSIGN(MTPDeviceMapService);

Powered by Google App Engine
This is Rietveld 408576698