Index: components/power/origin_power_map.h |
diff --git a/components/power/origin_power_map.h b/components/power/origin_power_map.h |
index 0936be46d8af98264316927e9e404a7bba9da170..36caa02f0ada89238b9bc3ae7270391f9cc13dc7 100644 |
--- a/components/power/origin_power_map.h |
+++ b/components/power/origin_power_map.h |
@@ -7,6 +7,7 @@ |
#include <map> |
+#include "base/callback_list.h" |
#include "components/keyed_service/core/keyed_service.h" |
#include "url/gurl.h" |
@@ -17,6 +18,7 @@ namespace power { |
class OriginPowerMap : public KeyedService { |
public: |
typedef std::map<GURL, int> PercentOriginMap; |
+ typedef base::CallbackList<void(void)>::Subscription Subscription; |
OriginPowerMap(); |
virtual ~OriginPowerMap(); |
@@ -33,6 +35,14 @@ class OriginPowerMap : public KeyedService { |
// consumed. |
PercentOriginMap GetPercentOriginMap(); |
+ // Adds a callback for the completion of a round of updates to |origin_map_|. |
+ scoped_ptr<Subscription> AddPowerConsumptionUpdatedCallback( |
+ const base::Closure& callback); |
+ |
+ // Notifies observers to let them know that the origin power map has finished |
+ // updating for all origins this cycle. |
+ void OnAllOriginsUpdated(); |
+ |
private: |
// OriginMap maps a URL to the amount of power consumed by the URL using the |
// same units as |total_consumed_|. |
@@ -43,6 +53,8 @@ class OriginPowerMap : public KeyedService { |
// the power heuristics available to the platform. |
double total_consumed_; |
+ base::CallbackList<void(void)> callback_list_; |
+ |
DISALLOW_COPY_AND_ASSIGN(OriginPowerMap); |
}; |