blob: b3767dc0189b46ce40c751771a3b26f21942c6a4 [file] [log] [blame]
Alex Deymoc705cc82014-02-19 11:15:00 -08001// Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Alex Deymo63784a52014-05-28 10:46:14 -07005#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_MANAGER_DEFAULT_POLICY_H_
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_MANAGER_DEFAULT_POLICY_H_
Alex Deymoc705cc82014-02-19 11:15:00 -08007
Gilad Arnoldf62a4b82014-05-01 07:41:07 -07008#include <base/time/time.h>
9
Alex Deymo63784a52014-05-28 10:46:14 -070010#include "update_engine/update_manager/policy.h"
Alex Deymoc705cc82014-02-19 11:15:00 -080011
Alex Deymo63784a52014-05-28 10:46:14 -070012namespace chromeos_update_manager {
Alex Deymoc705cc82014-02-19 11:15:00 -080013
14// The DefaultPolicy is a safe Policy implementation that doesn't fail. The
15// values returned by this policy are safe default in case of failure of the
Alex Deymo63784a52014-05-28 10:46:14 -070016// actual policy being used by the UpdateManager.
Alex Deymoc705cc82014-02-19 11:15:00 -080017class DefaultPolicy : public Policy {
18 public:
19 DefaultPolicy() {}
20 virtual ~DefaultPolicy() {}
21
22 // Policy overrides.
Alex Deymo0d11c602014-04-23 20:12:20 -070023 virtual EvalStatus UpdateCheckAllowed(
24 EvaluationContext* ec, State* state, std::string* error,
25 UpdateCheckParams* result) const override {
26 result->updates_enabled = true;
Gilad Arnoldaf2f6ae2014-04-28 14:14:52 -070027 return EvalStatus::kSucceeded;
28 }
29
Gilad Arnoldf62a4b82014-05-01 07:41:07 -070030 virtual EvalStatus UpdateCanStart(
31 EvaluationContext* ec,
32 State* state,
33 std::string* error,
34 UpdateCanStartResult* result,
35 const bool interactive,
36 const UpdateState& update_state) const override {
37 result->update_can_start = true;
38 result->http_allowed = false;
39 result->p2p_allowed = false;
40 result->target_channel.clear();
41 result->cannot_start_reason = UpdateCannotStartReason::kUndefined;
42 result->scatter_wait_period = base::TimeDelta();
43 result->scatter_check_threshold = 0;
Alex Deymoe636c3c2014-03-11 19:02:08 -070044 return EvalStatus::kSucceeded;
Alex Deymoc705cc82014-02-19 11:15:00 -080045 }
46
Gilad Arnold0adbc942014-05-12 10:35:43 -070047 virtual EvalStatus UpdateCurrentConnectionAllowed(
48 EvaluationContext* ec,
49 State* state,
50 std::string* error,
51 bool* result) const override {
52 *result = true;
53 return EvalStatus::kSucceeded;
54 }
55
Alex Deymoc705cc82014-02-19 11:15:00 -080056 private:
57 DISALLOW_COPY_AND_ASSIGN(DefaultPolicy);
58};
59
Alex Deymo63784a52014-05-28 10:46:14 -070060} // namespace chromeos_update_manager
Alex Deymoc705cc82014-02-19 11:15:00 -080061
Alex Deymo63784a52014-05-28 10:46:14 -070062#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_MANAGER_DEFAULT_POLICY_H_