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 #include "device/media_transfer_protocol/media_transfer_protocol_manager.h" | 5 #include "device/media_transfer_protocol/media_transfer_protocol_manager.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <queue> | 8 #include <queue> |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 17 matching lines...) Expand all Loading... |
28 | 28 |
29 namespace device { | 29 namespace device { |
30 | 30 |
31 namespace { | 31 namespace { |
32 | 32 |
33 MediaTransferProtocolManager* g_media_transfer_protocol_manager = NULL; | 33 MediaTransferProtocolManager* g_media_transfer_protocol_manager = NULL; |
34 | 34 |
35 // The MediaTransferProtocolManager implementation. | 35 // The MediaTransferProtocolManager implementation. |
36 class MediaTransferProtocolManagerImpl : public MediaTransferProtocolManager { | 36 class MediaTransferProtocolManagerImpl : public MediaTransferProtocolManager { |
37 public: | 37 public: |
38 MediaTransferProtocolManagerImpl( | 38 explicit MediaTransferProtocolManagerImpl( |
39 scoped_refptr<base::MessageLoopProxy> loop_proxy) | 39 scoped_refptr<base::MessageLoopProxy> loop_proxy) |
40 : weak_ptr_factory_(this) { | 40 : weak_ptr_factory_(this) { |
41 dbus::Bus* bus = NULL; | 41 dbus::Bus* bus = NULL; |
42 #if defined(OS_CHROMEOS) | 42 #if defined(OS_CHROMEOS) |
43 DCHECK(!loop_proxy.get()); | 43 DCHECK(!loop_proxy.get()); |
44 chromeos::DBusThreadManager* dbus_thread_manager = | 44 chromeos::DBusThreadManager* dbus_thread_manager = |
45 chromeos::DBusThreadManager::Get(); | 45 chromeos::DBusThreadManager::Get(); |
46 bus = dbus_thread_manager->GetSystemBus(); | 46 bus = dbus_thread_manager->GetSystemBus(); |
47 if (!bus) | 47 if (!bus) |
48 return; | 48 return; |
(...skipping 15 matching lines...) Expand all Loading... |
64 mtp_client_->SetUpConnections( | 64 mtp_client_->SetUpConnections( |
65 base::Bind(&MediaTransferProtocolManagerImpl::OnStorageChanged, | 65 base::Bind(&MediaTransferProtocolManagerImpl::OnStorageChanged, |
66 weak_ptr_factory_.GetWeakPtr())); | 66 weak_ptr_factory_.GetWeakPtr())); |
67 mtp_client_->EnumerateStorages( | 67 mtp_client_->EnumerateStorages( |
68 base::Bind(&MediaTransferProtocolManagerImpl::OnEnumerateStorages, | 68 base::Bind(&MediaTransferProtocolManagerImpl::OnEnumerateStorages, |
69 weak_ptr_factory_.GetWeakPtr()), | 69 weak_ptr_factory_.GetWeakPtr()), |
70 base::Bind(&base::DoNothing)); | 70 base::Bind(&base::DoNothing)); |
71 } | 71 } |
72 | 72 |
73 virtual ~MediaTransferProtocolManagerImpl() { | 73 virtual ~MediaTransferProtocolManagerImpl() { |
| 74 DCHECK(g_media_transfer_protocol_manager); |
| 75 g_media_transfer_protocol_manager = NULL; |
| 76 VLOG(1) << "MediaTransferProtocolManager Shutdown completed"; |
74 } | 77 } |
75 | 78 |
76 // MediaTransferProtocolManager override. | 79 // MediaTransferProtocolManager override. |
77 virtual void AddObserver(Observer* observer) OVERRIDE { | 80 virtual void AddObserver(Observer* observer) OVERRIDE { |
78 observers_.AddObserver(observer); | 81 observers_.AddObserver(observer); |
79 } | 82 } |
80 | 83 |
81 // MediaTransferProtocolManager override. | 84 // MediaTransferProtocolManager override. |
82 virtual void RemoveObserver(Observer* observer) OVERRIDE { | 85 virtual void RemoveObserver(Observer* observer) OVERRIDE { |
83 observers_.RemoveObserver(observer); | 86 observers_.RemoveObserver(observer); |
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 GetFileInfoCallbackQueue get_file_info_callbacks_; | 430 GetFileInfoCallbackQueue get_file_info_callbacks_; |
428 | 431 |
429 base::ThreadChecker thread_checker_; | 432 base::ThreadChecker thread_checker_; |
430 | 433 |
431 DISALLOW_COPY_AND_ASSIGN(MediaTransferProtocolManagerImpl); | 434 DISALLOW_COPY_AND_ASSIGN(MediaTransferProtocolManagerImpl); |
432 }; | 435 }; |
433 | 436 |
434 } // namespace | 437 } // namespace |
435 | 438 |
436 // static | 439 // static |
437 void MediaTransferProtocolManager::Initialize( | 440 MediaTransferProtocolManager* MediaTransferProtocolManager::Initialize( |
438 scoped_refptr<base::MessageLoopProxy> loop_proxy) { | 441 scoped_refptr<base::MessageLoopProxy> loop_proxy) { |
439 if (g_media_transfer_protocol_manager) { | 442 DCHECK(!g_media_transfer_protocol_manager); |
440 LOG(WARNING) << "MediaTransferProtocolManager was already initialized"; | 443 |
441 return; | |
442 } | |
443 g_media_transfer_protocol_manager = | 444 g_media_transfer_protocol_manager = |
444 new MediaTransferProtocolManagerImpl(loop_proxy); | 445 new MediaTransferProtocolManagerImpl(loop_proxy); |
445 VLOG(1) << "MediaTransferProtocolManager initialized"; | 446 VLOG(1) << "MediaTransferProtocolManager initialized"; |
446 } | |
447 | 447 |
448 // static | |
449 void MediaTransferProtocolManager::Shutdown() { | |
450 if (!g_media_transfer_protocol_manager) { | |
451 LOG(WARNING) << "MediaTransferProtocolManager::Shutdown() called with " | |
452 << "NULL manager"; | |
453 return; | |
454 } | |
455 delete g_media_transfer_protocol_manager; | |
456 g_media_transfer_protocol_manager = NULL; | |
457 VLOG(1) << "MediaTransferProtocolManager Shutdown completed"; | |
458 } | |
459 | |
460 // static | |
461 MediaTransferProtocolManager* MediaTransferProtocolManager::GetInstance() { | |
462 return g_media_transfer_protocol_manager; | 448 return g_media_transfer_protocol_manager; |
463 } | 449 } |
464 | 450 |
465 } // namespace device | 451 } // namespace device |
OLD | NEW |