OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Any tasks that communicates with the portable device may take >100ms to | 5 // Any tasks that communicates with the portable device may take >100ms to |
6 // complete. Those tasks should be run on an blocking thread instead of the | 6 // complete. Those tasks should be run on an blocking thread instead of the |
7 // UI thread. | 7 // UI thread. |
8 | 8 |
9 #include "chrome/browser/storage_monitor/portable_device_watcher_win.h" | 9 #include "chrome/browser/storage_monitor/portable_device_watcher_win.h" |
10 | 10 |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 string16* storage_object_id) const { | 515 string16* storage_object_id) const { |
516 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 516 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
517 DCHECK(device_location); | 517 DCHECK(device_location); |
518 DCHECK(storage_object_id); | 518 DCHECK(storage_object_id); |
519 MTPStorageMap::const_iterator storage_map_iter = | 519 MTPStorageMap::const_iterator storage_map_iter = |
520 storage_map_.find(storage_device_id); | 520 storage_map_.find(storage_device_id); |
521 if (storage_map_iter == storage_map_.end()) | 521 if (storage_map_iter == storage_map_.end()) |
522 return false; | 522 return false; |
523 | 523 |
524 MTPDeviceMap::const_iterator device_iter = | 524 MTPDeviceMap::const_iterator device_iter = |
525 device_map_.find(storage_map_iter->second.location); | 525 device_map_.find(storage_map_iter->second.location()); |
526 if (device_iter == device_map_.end()) | 526 if (device_iter == device_map_.end()) |
527 return false; | 527 return false; |
528 const StorageObjects& storage_objects = device_iter->second; | 528 const StorageObjects& storage_objects = device_iter->second; |
529 for (StorageObjects::const_iterator storage_object_iter = | 529 for (StorageObjects::const_iterator storage_object_iter = |
530 storage_objects.begin(); storage_object_iter != storage_objects.end(); | 530 storage_objects.begin(); storage_object_iter != storage_objects.end(); |
531 ++storage_object_iter) { | 531 ++storage_object_iter) { |
532 if (storage_device_id == storage_object_iter->object_persistent_id) { | 532 if (storage_device_id == storage_object_iter->object_persistent_id) { |
533 *device_location = storage_map_iter->second.location; | 533 *device_location = storage_map_iter->second.location(); |
534 *storage_object_id = storage_object_iter->object_temporary_id; | 534 *storage_object_id = storage_object_iter->object_temporary_id; |
535 return true; | 535 return true; |
536 } | 536 } |
537 } | 537 } |
538 return false; | 538 return false; |
539 } | 539 } |
540 | 540 |
541 // static | 541 // static |
542 string16 PortableDeviceWatcherWin::GetStoragePathFromStorageId( | 542 string16 PortableDeviceWatcherWin::GetStoragePathFromStorageId( |
543 const std::string& storage_unique_id) { | 543 const std::string& storage_unique_id) { |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 return; | 619 return; |
620 | 620 |
621 // Device can have several data partitions. Therefore, add the | 621 // Device can have several data partitions. Therefore, add the |
622 // partition identifier to the storage name. E.g.: "Nexus 7 (s10001)" | 622 // partition identifier to the storage name. E.g.: "Nexus 7 (s10001)" |
623 string16 storage_name(name + L" (" + storage_iter->object_temporary_id + | 623 string16 storage_name(name + L" (" + storage_iter->object_temporary_id + |
624 L')'); | 624 L')'); |
625 StorageInfo info(storage_id, storage_name, location, | 625 StorageInfo info(storage_id, storage_name, location, |
626 string16(), string16(), string16(), 0); | 626 string16(), string16(), string16(), 0); |
627 storage_map_[storage_id] = info; | 627 storage_map_[storage_id] = info; |
628 if (storage_notifications_) { | 628 if (storage_notifications_) { |
629 info.location = GetStoragePathFromStorageId(storage_id); | 629 info.set_location(GetStoragePathFromStorageId(storage_id)); |
630 storage_notifications_->ProcessAttach(info); | 630 storage_notifications_->ProcessAttach(info); |
631 } | 631 } |
632 } | 632 } |
633 device_map_[location] = storage_objects; | 633 device_map_[location] = storage_objects; |
634 } | 634 } |
635 | 635 |
636 void PortableDeviceWatcherWin::HandleDeviceDetachEvent( | 636 void PortableDeviceWatcherWin::HandleDeviceDetachEvent( |
637 const string16& pnp_device_id) { | 637 const string16& pnp_device_id) { |
638 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 638 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
639 MTPDeviceMap::iterator device_iter = device_map_.find(pnp_device_id); | 639 MTPDeviceMap::iterator device_iter = device_map_.find(pnp_device_id); |
640 if (device_iter == device_map_.end()) | 640 if (device_iter == device_map_.end()) |
641 return; | 641 return; |
642 | 642 |
643 const StorageObjects& storage_objects = device_iter->second; | 643 const StorageObjects& storage_objects = device_iter->second; |
644 for (StorageObjects::const_iterator storage_object_iter = | 644 for (StorageObjects::const_iterator storage_object_iter = |
645 storage_objects.begin(); storage_object_iter != storage_objects.end(); | 645 storage_objects.begin(); storage_object_iter != storage_objects.end(); |
646 ++storage_object_iter) { | 646 ++storage_object_iter) { |
647 std::string storage_id = storage_object_iter->object_persistent_id; | 647 std::string storage_id = storage_object_iter->object_persistent_id; |
648 MTPStorageMap::iterator storage_map_iter = storage_map_.find(storage_id); | 648 MTPStorageMap::iterator storage_map_iter = storage_map_.find(storage_id); |
649 DCHECK(storage_map_iter != storage_map_.end()); | 649 DCHECK(storage_map_iter != storage_map_.end()); |
650 if (storage_notifications_) | 650 if (storage_notifications_) { |
651 storage_notifications_->ProcessDetach(storage_map_iter->second.device_id); | 651 storage_notifications_->ProcessDetach( |
| 652 storage_map_iter->second.device_id()); |
| 653 } |
652 storage_map_.erase(storage_map_iter); | 654 storage_map_.erase(storage_map_iter); |
653 } | 655 } |
654 device_map_.erase(device_iter); | 656 device_map_.erase(device_iter); |
655 } | 657 } |
656 | 658 |
657 } // namespace chrome | 659 } // namespace chrome |
OLD | NEW |