[ledger] Deduplicate ExpiringToken definitions
Change-Id: Id286262ab3dae94c03cfe1f0f753ccea364ced98
diff --git a/src/ledger/bin/app/ledger_manager.cc b/src/ledger/bin/app/ledger_manager.cc
index dc845ce..ffdf85b2 100644
--- a/src/ledger/bin/app/ledger_manager.cc
+++ b/src/ledger/bin/app/ledger_manager.cc
@@ -19,6 +19,7 @@
#include "src/ledger/bin/app/constants.h"
#include "src/ledger/bin/app/page_utils.h"
+#include "src/ledger/bin/app/types.h"
#include "src/ledger/bin/fidl/include/types.h"
#include "src/ledger/bin/p2p_sync/public/page_communicator.h"
#include "src/ledger/bin/storage/public/page_storage.h"
@@ -26,11 +27,6 @@
namespace ledger {
namespace {
-// A token that performs a given action on destruction.
-// ExpiringToken objects are used with internal page requests to notify the
-// PageManagerContainer that the requested PageManager is no longer used.
-using ExpiringToken = fit::deferred_action<fit::closure>;
-
// A notifier for |PageUsageListener|.
//
// Given information about when internal and external page connections open and
diff --git a/src/ledger/bin/app/page_eviction_manager_impl.cc b/src/ledger/bin/app/page_eviction_manager_impl.cc
index ec689ea..a3da94f 100644
--- a/src/ledger/bin/app/page_eviction_manager_impl.cc
+++ b/src/ledger/bin/app/page_eviction_manager_impl.cc
@@ -381,8 +381,7 @@
return status;
}
-PageEvictionManagerImpl::ExpiringToken
-PageEvictionManagerImpl::NewExpiringToken() {
+ExpiringToken PageEvictionManagerImpl::NewExpiringToken() {
++pending_operations_;
return ExpiringToken(callback::MakeScoped(weak_factory_.GetWeakPtr(), [this] {
--pending_operations_;
diff --git a/src/ledger/bin/app/page_eviction_manager_impl.h b/src/ledger/bin/app/page_eviction_manager_impl.h
index af463983..00f14f5 100644
--- a/src/ledger/bin/app/page_eviction_manager_impl.h
+++ b/src/ledger/bin/app/page_eviction_manager_impl.h
@@ -16,6 +16,7 @@
#include "src/ledger/bin/app/page_usage_db.h"
#include "src/ledger/bin/app/page_utils.h"
+#include "src/ledger/bin/app/types.h"
#include "src/ledger/bin/environment/environment.h"
#include "src/ledger/bin/storage/public/db_factory.h"
#include "src/ledger/lib/coroutine/coroutine.h"
@@ -59,10 +60,6 @@
fit::function<void(storage::Status, PageWasEvicted)> callback) override;
private:
- // A token that performs a given action on destruction. ExpiringToken objects
- // are used to keep track of pending operations.
- using ExpiringToken = fit::deferred_action<fit::closure>;
-
// A Completer allowing waiting until the target operation is completed.
class Completer {
public:
diff --git a/src/ledger/bin/app/types.h b/src/ledger/bin/app/types.h
index 033f33d..4f426a6 100644
--- a/src/ledger/bin/app/types.h
+++ b/src/ledger/bin/app/types.h
@@ -7,12 +7,17 @@
#include <string>
+#include <lib/fit/defer.h>
+#include <lib/fit/function.h>
#include <lib/zx/time.h>
#include "src/ledger/bin/storage/public/types.h"
namespace ledger {
+// A token that performs a given action on destruction.
+using ExpiringToken = fit::deferred_action<fit::closure>;
+
// The result of a predicate, meant to be checked on a closed page. The result
// is |YES| or |NO| depending on whether the predicate is satisfied or not. If
// however the page was opened during the operation, |PAGE_OPENED| is returned.