1 #include <filesystem>
2 #include <functional>
3 #include <map>
4 #include <memory>
5 #include <string>
6 #include <variant>
7 #include <vector>
8 
9 namespace sdbusplus
10 {
11 namespace bus
12 {
13 class bus;
14 } // namespace bus
15 } // namespace sdbusplus
16 
17 namespace sdeventplus
18 {
19 class Event;
20 } // namespace sdeventplus
21 
22 namespace functions
23 {
24 namespace process_hostfirmware
25 {
26 using ErrorCallbackType =
27     std::function<void(const std::filesystem::path&, std::error_code&)>;
28 using LinkCallbackType =
29     std::function<void(const std::filesystem::path&,
30                        const std::filesystem::path&, const ErrorCallbackType&)>;
31 using MaybeCallCallbackType =
32     std::function<void(const std::vector<std::string>&)>;
33 bool getExtensionsForIbmCompatibleSystem(
34     const std::map<std::string, std::vector<std::string>>&,
35     const std::vector<std::string>&, std::vector<std::string>&);
36 void writeLink(const std::filesystem::path&, const std::filesystem::path&,
37                const ErrorCallbackType&);
38 void findLinks(const std::filesystem::path&, const std::vector<std::string>&,
39                const ErrorCallbackType&, const LinkCallbackType&);
40 bool maybeCall(
41     const std::map<
42         std::string,
43         std::map<std::string, std::variant<std::vector<std::string>>>>&,
44     const MaybeCallCallbackType&);
45 std::shared_ptr<void> processHostFirmware(
46     sdbusplus::bus::bus&, std::map<std::string, std::vector<std::string>>,
47     std::filesystem::path, ErrorCallbackType, sdeventplus::Event&);
48 } // namespace process_hostfirmware
49 } // namespace functions
50