diff options
Diffstat (limited to 'update_manager/update_manager.cc')
-rw-r--r-- | update_manager/update_manager.cc | 33 |
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."; } } |