xref: /openbmc/phosphor-ipmi-blobs/fs.hpp (revision c18e2b649691e393f0c6e0fcd9af288b68d7d9b5)
1*c18e2b64SPatrick Venture #pragma once
2*c18e2b64SPatrick Venture 
3*c18e2b64SPatrick Venture #include <functional>
4*c18e2b64SPatrick Venture #include <string>
5*c18e2b64SPatrick Venture #include <vector>
6*c18e2b64SPatrick Venture 
7*c18e2b64SPatrick Venture namespace blobs
8*c18e2b64SPatrick Venture {
9*c18e2b64SPatrick Venture using PathMatcher = std::function<bool(const std::string& filename)>;
10*c18e2b64SPatrick Venture 
11*c18e2b64SPatrick Venture /**
12*c18e2b64SPatrick Venture  * Returns a list of library paths.  Checks against match method.
13*c18e2b64SPatrick Venture  *
14*c18e2b64SPatrick Venture  * TODO: Can be dropped if we implement a clean fs wrapper for test injection.
15*c18e2b64SPatrick Venture  *
16*c18e2b64SPatrick Venture  * @param[in] path - the path to search
17*c18e2b64SPatrick Venture  * @param[in] check - the function to call to check the path
18*c18e2b64SPatrick Venture  * @return a list of paths that match the criteria
19*c18e2b64SPatrick Venture  */
20*c18e2b64SPatrick Venture std::vector<std::string> getLibraryList(const std::string& path,
21*c18e2b64SPatrick Venture                                         PathMatcher check);
22*c18e2b64SPatrick Venture 
23*c18e2b64SPatrick Venture } // namespace blobs
24