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 3c599dbe91000f321900ccc6942a3dc37f0ac75d..9432b55e194d49165deea2546f5559c4d37d1862 100644 |
--- a/chrome/browser/budget_service/budget_database.h |
+++ b/chrome/browser/budget_service/budget_database.h |
@@ -35,12 +35,14 @@ class Profile; |
// assigned to an origin. The class uses an underlying LevelDB. |
class BudgetDatabase { |
public: |
- // Callback for setting a budget value. |
- using StoreBudgetCallback = base::Callback<void(bool success)>; |
- |
// Callback for getting a list of all budget chunks. |
using GetBudgetCallback = blink::mojom::BudgetService::GetBudgetCallback; |
+ // This is invoked only after the spend has been written to the database. |
+ using SpendBudgetCallback = |
+ base::Callback<void(blink::mojom::BudgetServiceErrorType error_type, |
+ bool success)>; |
+ |
// The database_dir specifies the location of the budget information on |
// disk. The task_runner is used by the ProtoDatabase to handle all blocking |
// calls and disk access. |
@@ -54,13 +56,11 @@ class BudgetDatabase { |
void GetBudgetDetails(const url::Origin& origin, |
const GetBudgetCallback& callback); |
- // Spend a particular amount of budget for an origin. The callback takes |
- // a boolean which indicates whether the origin had enough budget to spend. |
- // If it returns success, then the budget was deducted and the result written |
- // to the database. |
+ // Spend a particular amount of budget for an origin. The callback indicates |
+ // whether there was an error and if the origin had enough budget. |
void SpendBudget(const url::Origin& origin, |
double amount, |
- const StoreBudgetCallback& callback); |
+ const SpendBudgetCallback& callback); |
private: |
friend class BudgetDatabaseTest; |
@@ -97,8 +97,10 @@ class BudgetDatabase { |
DISALLOW_COPY_AND_ASSIGN(BudgetInfo); |
}; |
- using AddToCacheCallback = base::Callback<void(bool success)>; |
- using SyncCacheCallback = base::Callback<void(bool success)>; |
+ // Callback for writing budget values to the database. |
+ using StoreBudgetCallback = base::Callback<void(bool success)>; |
+ |
+ using CacheCallback = base::Callback<void(bool success)>; |
void OnDatabaseInit(bool success); |
@@ -107,7 +109,7 @@ class BudgetDatabase { |
double GetBudget(const url::Origin& origin) const; |
void AddToCache(const url::Origin& origin, |
- const AddToCacheCallback& callback, |
+ const CacheCallback& callback, |
bool success, |
std::unique_ptr<budget_service::Budget> budget); |
@@ -117,15 +119,17 @@ class BudgetDatabase { |
void SpendBudgetAfterSync(const url::Origin& origin, |
double amount, |
- const StoreBudgetCallback& callback, |
+ const SpendBudgetCallback& callback, |
bool success); |
+ void SpendBudgetAfterWrite(const SpendBudgetCallback& callback, bool success); |
+ |
void WriteCachedValuesToDatabase(const url::Origin& origin, |
const StoreBudgetCallback& callback); |
- void SyncCache(const url::Origin& origin, const SyncCacheCallback& callback); |
+ void SyncCache(const url::Origin& origin, const CacheCallback& callback); |
void SyncLoadedCache(const url::Origin& origin, |
- const SyncCacheCallback& callback, |
+ const CacheCallback& callback, |
bool success); |
// Add budget based on engagement with an origin. The method queries for the |