blob: ae27301bf6ff967ee7a0faf08fd6a3c31a407fb9 [file] [log] [blame]
Alex Deymoca0aaa62014-01-06 10:39:58 -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
5#ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_PM_RANDOM_PROVIDER_H
6#define CHROMEOS_PLATFORM_UPDATE_ENGINE_PM_RANDOM_PROVIDER_H
7
Gilad Arnoldb33e1982014-01-27 14:46:27 -08008#include "policy_manager/provider.h"
Gilad Arnold63e726a2014-01-28 22:28:19 -08009#include "policy_manager/provider_utils.h"
10#include "policy_manager/random_vars.h"
Alex Deymoca0aaa62014-01-06 10:39:58 -080011
12namespace chromeos_policy_manager {
13
14// Provider of random values.
Gilad Arnoldb33e1982014-01-27 14:46:27 -080015class RandomProvider : public Provider {
Alex Deymoca0aaa62014-01-06 10:39:58 -080016 public:
Gilad Arnold63e726a2014-01-28 22:28:19 -080017 RandomProvider() : seed_closer_(&var_random_seed) {}
Alex Deymoca0aaa62014-01-06 10:39:58 -080018
Gilad Arnoldb33e1982014-01-27 14:46:27 -080019 protected:
20 virtual bool DoInit();
Alex Deymoca0aaa62014-01-06 10:39:58 -080021
22 private:
Gilad Arnold63e726a2014-01-28 22:28:19 -080023 ScopedPtrVarCloser<typeof(var_random_seed)> seed_closer_;
24
Alex Deymoca0aaa62014-01-06 10:39:58 -080025 DISALLOW_COPY_AND_ASSIGN(RandomProvider);
26};
27
28} // namespace chromeos_policy_manager
29
30#endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_PM_RANDOM_PROVIDER_H