blob: 56eedf2f1de38ee45ed555e6071cfcfccb089e98 [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
Gilad Arnold2cbb3852014-03-07 12:40:50 -08005#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_DEFAULT_POLICY_H_
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_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 Deymoc705cc82014-02-19 11:15:00 -080010#include "update_engine/policy_manager/policy.h"
11
12namespace chromeos_policy_manager {
13
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
16// actual policy being used by the PolicyManager.
17class 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
47 private:
48 DISALLOW_COPY_AND_ASSIGN(DefaultPolicy);
49};
50
51} // namespace chromeos_policy_manager
52
Gilad Arnold2cbb3852014-03-07 12:40:50 -080053#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_DEFAULT_POLICY_H_