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 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_STATUS_UPDATER_H_ | 5 #ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_STATUS_UPDATER_H_ |
6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_STATUS_UPDATER_H_ | 6 #define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_STATUS_UPDATER_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "chrome/browser/download/hyperbolic_download_item_notifier.h" | 11 #include "chrome/browser/download/all_download_item_notifier.h" |
12 #include "content/public/browser/download_item.h" | 12 #include "content/public/browser/download_item.h" |
13 #include "content/public/browser/download_manager.h" | 13 #include "content/public/browser/download_manager.h" |
14 | 14 |
15 // Keeps track of download progress for the entire browser. | 15 // Keeps track of download progress for the entire browser. |
16 class DownloadStatusUpdater | 16 class DownloadStatusUpdater |
17 : public HyperbolicDownloadItemNotifier::Observer { | 17 : public AllDownloadItemNotifier::Observer { |
18 public: | 18 public: |
19 DownloadStatusUpdater(); | 19 DownloadStatusUpdater(); |
20 virtual ~DownloadStatusUpdater(); | 20 virtual ~DownloadStatusUpdater(); |
21 | 21 |
22 // Fills in |*download_count| with the number of currently active downloads. | 22 // Fills in |*download_count| with the number of currently active downloads. |
23 // If we know the final size of all downloads, this routine returns true | 23 // If we know the final size of all downloads, this routine returns true |
24 // with |*progress| set to the percentage complete of all in-progress | 24 // with |*progress| set to the percentage complete of all in-progress |
25 // downloads. Otherwise, it returns false. | 25 // downloads. Otherwise, it returns false. |
26 bool GetProgress(float* progress, int* download_count) const; | 26 bool GetProgress(float* progress, int* download_count) const; |
27 | 27 |
28 // Add the specified DownloadManager to the list of managers for which | 28 // Add the specified DownloadManager to the list of managers for which |
29 // this object reports status. | 29 // this object reports status. |
30 // The manager must not have previously been added to this updater. | 30 // The manager must not have previously been added to this updater. |
31 // The updater will automatically disassociate itself from the | 31 // The updater will automatically disassociate itself from the |
32 // manager when the manager is shutdown. | 32 // manager when the manager is shutdown. |
33 void AddManager(content::DownloadManager* manager); | 33 void AddManager(content::DownloadManager* manager); |
34 | 34 |
35 // HyperbolicDownloadItemNotifier::Observer | 35 // AllDownloadItemNotifier::Observer |
36 virtual void OnDownloadCreated( | 36 virtual void OnDownloadCreated( |
37 content::DownloadManager* manager, content::DownloadItem* item) OVERRIDE; | 37 content::DownloadManager* manager, content::DownloadItem* item) OVERRIDE; |
38 virtual void OnDownloadUpdated( | 38 virtual void OnDownloadUpdated( |
39 content::DownloadManager* manager, content::DownloadItem* item) OVERRIDE; | 39 content::DownloadManager* manager, content::DownloadItem* item) OVERRIDE; |
40 | 40 |
41 protected: | 41 protected: |
42 // Platform-specific function to update the platform UI for download progress. | 42 // Platform-specific function to update the platform UI for download progress. |
43 // |download| is the download item that changed. Implementations should not | 43 // |download| is the download item that changed. Implementations should not |
44 // hold the value of |download| as it is not guaranteed to remain valid. | 44 // hold the value of |download| as it is not guaranteed to remain valid. |
45 // Virtual to be overridable for testing. | 45 // Virtual to be overridable for testing. |
46 virtual void UpdateAppIconDownloadProgress(content::DownloadItem* download); | 46 virtual void UpdateAppIconDownloadProgress(content::DownloadItem* download); |
47 | 47 |
48 private: | 48 private: |
49 std::vector<HyperbolicDownloadItemNotifier*> notifiers_; | 49 std::vector<AllDownloadItemNotifier*> notifiers_; |
50 | 50 |
51 DISALLOW_COPY_AND_ASSIGN(DownloadStatusUpdater); | 51 DISALLOW_COPY_AND_ASSIGN(DownloadStatusUpdater); |
52 }; | 52 }; |
53 | 53 |
54 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_STATUS_UPDATER_H_ | 54 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_STATUS_UPDATER_H_ |
OLD | NEW |