summaryrefslogtreecommitdiff
path: root/update_manager/update_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'update_manager/update_manager.cc')
-rw-r--r--update_manager/update_manager.cc33
1 files changed, 15 insertions, 18 deletions
diff --git a/update_manager/update_manager.cc b/update_manager/update_manager.cc
index 5dfc09cf..dbb6b336 100644
--- a/update_manager/update_manager.cc
+++ b/update_manager/update_manager.cc
@@ -15,32 +15,18 @@
//
#include "update_engine/update_manager/update_manager.h"
-
-#ifdef __ANDROID__
-#include "update_engine/update_manager/android_things_policy.h"
-#else
-#include "update_engine/update_manager/chromeos_policy.h"
-#endif // __ANDROID__
#include "update_engine/update_manager/state.h"
namespace chromeos_update_manager {
-UpdateManager::UpdateManager(chromeos_update_engine::ClockInterface* clock,
- base::TimeDelta evaluation_timeout,
+UpdateManager::UpdateManager(base::TimeDelta evaluation_timeout,
base::TimeDelta expiration_timeout,
State* state)
- : default_policy_(clock),
+ : policy_(GetSystemPolicy()),
state_(state),
- clock_(clock),
evaluation_timeout_(evaluation_timeout),
expiration_timeout_(expiration_timeout),
- weak_ptr_factory_(this) {
-#ifdef __ANDROID__
- policy_.reset(new AndroidThingsPolicy());
-#else
- policy_.reset(new ChromeOSPolicy());
-#endif // __ANDROID__
-}
+ weak_ptr_factory_(this) {}
UpdateManager::~UpdateManager() {
// Remove pending main loop events associated with any of the outstanding
@@ -50,8 +36,19 @@ UpdateManager::~UpdateManager() {
ec->RemoveObserversAndTimeout();
}
+void UpdateManager::AsyncPolicyRequestUpdateCheckAllowed(
+ base::Callback<void(EvalStatus, const UpdateCheckParams& result)> callback,
+ EvalStatus (Policy::*policy_method)(
+ EvaluationContext*, State*, std::string*, UpdateCheckParams*) const) {
+ AsyncPolicyRequest(callback, policy_method);
+}
+
void UpdateManager::UnregisterEvalContext(EvaluationContext* ec) {
- if (!ec_repo_.erase(ec)) {
+ // Since |ec_repo_|'s compare function is based on the value of the raw
+ // pointer |ec|, we can just create a |shared_ptr| here and pass it along to
+ // be erased.
+ if (!ec_repo_.erase(
+ std::shared_ptr<EvaluationContext>(ec, [](EvaluationContext*) {}))) {
LOG(ERROR) << "Unregistering an unknown evaluation context, this is a bug.";
}
}