Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / components / power / origin_power_map.h
index 0936be4..3d664da 100644 (file)
@@ -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,17 @@ 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();
+
+  // Clears all URLs out of the map.
+  void ClearOriginMap();
+
  private:
   // OriginMap maps a URL to the amount of power consumed by the URL using the
   // same units as |total_consumed_|.
@@ -43,6 +56,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);
 };