Index: chrome/browser/budget_service/budget_database.h |
diff --git a/chrome/browser/budget_service/budget_database.h b/chrome/browser/budget_service/budget_database.h |
index 0e70b34e2724be02ef610e3110ee26b562702609..239e7fef6cd7d2bcb3d7541d5eeb840821428134 100644 |
--- a/chrome/browser/budget_service/budget_database.h |
+++ b/chrome/browser/budget_service/budget_database.h |
@@ -18,6 +18,7 @@ |
namespace base { |
class Clock; |
class SequencedTaskRunner; |
+class Time; |
} |
namespace budget_service { |
@@ -31,7 +32,7 @@ class GURL; |
class BudgetDatabase { |
public: |
// Data structure for returing the budget decay expectations to the caller. |
- using BudgetExpectation = std::list<std::pair<double, double>>; |
+ using BudgetExpectation = std::list<std::pair<double, base::Time>>; |
// Callback for setting a budget value. |
using StoreBudgetCallback = base::Callback<void(bool success)>; |
@@ -55,7 +56,8 @@ class BudgetDatabase { |
// Add budget for an origin. The caller specifies the amount, and the method |
// adds the amount to the cache with the correct expiration. Callback is |
- // invoked only after the newly cached value is written to storage. |
+ // invoked only after the newly cached value is written to storage. This |
+ // should only be called after the budget has been read from the database. |
void AddBudget(const GURL& origin, |
double amount, |
const StoreBudgetCallback& callback); |
@@ -67,13 +69,15 @@ class BudgetDatabase { |
void SetClockForTesting(std::unique_ptr<base::Clock> clock); |
// Data structure for caching budget information. |
- using BudgetChunks = std::vector<std::pair<double, double>>; |
+ using BudgetChunks = std::vector<std::pair<double, base::Time>>; |
using BudgetInfo = std::pair<double, BudgetChunks>; |
using AddToCacheCallback = base::Callback<void(bool success)>; |
void OnDatabaseInit(bool success); |
+ bool IsCached(const GURL& origin) const; |
+ |
void AddToCache(const GURL& origin, |
const AddToCacheCallback& callback, |
bool success, |
@@ -86,6 +90,8 @@ class BudgetDatabase { |
void WriteCachedValuesToDatabase(const GURL& origin, |
const StoreBudgetCallback& callback); |
+ void CleanupExpiredBudget(const GURL& origin); |
+ |
// The database for storing budget information. |
std::unique_ptr<leveldb_proto::ProtoDatabase<budget_service::Budget>> db_; |