blob: 0c28a6c09a4fb48fefde7d7f4c7fa64964f0f4d5 [file] [log] [blame]
Enrico Granata60b1cbc2019-05-20 11:06:46 -07001// Copyright 2019 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 MEMS_SETUP_DELEGATE_H_
6#define MEMS_SETUP_DELEGATE_H_
7
8#include <unistd.h>
9
10#include <string>
11
12#include <base/files/file_path.h>
13#include <base/macros.h>
14#include <base/optional.h>
15
16namespace mems_setup {
17
18class Delegate {
19 public:
20 virtual ~Delegate() = default;
21
22 virtual base::Optional<std::string> ReadVpdValue(const std::string& key) = 0;
23 virtual bool ProbeKernelModule(const std::string& module) = 0;
24
25 virtual bool Exists(const base::FilePath&) = 0;
26
27 protected:
28 Delegate() = default;
29
30 private:
31 DISALLOW_COPY_AND_ASSIGN(Delegate);
32};
33
34} // namespace mems_setup
35
36#endif // MEMS_SETUP_DELEGATE_H_