xref: /openbmc/phosphor-pid-control/sysfs/sysfsread.hpp (revision a076487aab0ee71ea32d53f798d5ca6b31677278)
1863b9246SPatrick Venture #pragma once
2863b9246SPatrick Venture 
3863b9246SPatrick Venture #include "interfaces.hpp"
40c8223b5SJames Feist #include "util.hpp"
5863b9246SPatrick Venture 
6da4a5dd1SPatrick Venture #include <string>
7863b9246SPatrick Venture 
8*a076487aSPatrick Venture namespace pid_control
9*a076487aSPatrick Venture {
10*a076487aSPatrick Venture 
11863b9246SPatrick Venture /*
12863b9246SPatrick Venture  * A ReadInterface that is expecting a path that's sysfs, but really could be
13863b9246SPatrick Venture  * any filesystem path.
14863b9246SPatrick Venture  */
15863b9246SPatrick Venture class SysFsRead : public ReadInterface
16863b9246SPatrick Venture {
17863b9246SPatrick Venture   public:
SysFsRead(const std::string & path)183c2564cbSPatrick Venture     explicit SysFsRead(const std::string& path) :
193c2564cbSPatrick Venture         ReadInterface(), _path(FixupPath(path))
20a83a3eccSPatrick Venture     {}
21863b9246SPatrick Venture 
22863b9246SPatrick Venture     ReadReturn read(void) override;
23863b9246SPatrick Venture 
24863b9246SPatrick Venture   private:
25863b9246SPatrick Venture     const std::string _path;
26863b9246SPatrick Venture };
27*a076487aSPatrick Venture 
28*a076487aSPatrick Venture } // namespace pid_control
29