add dynamic library interface to enable testing
Add interface defining the methods for dynamic linking to enable
testing.
Change-Id: If4d090d3cedc019b426435a1f651191803bfc1a9
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/utils.hpp b/utils.hpp
index 9b75a40..50d320e 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -1,15 +1,34 @@
#pragma once
+#include "internal/sys.hpp"
+
+#include <blobs-ipmid/manager.hpp>
+#include <memory>
#include <string>
namespace blobs
{
+using HandlerFactory = std::unique_ptr<GenericBlobInterface> (*)();
+
+/**
+ * The bitbake recipe symlinks the library lib*.so.? into the folder
+ * only, and not the other names, .so, .so.?.?, .so.?.?.?
+ *
+ * Therefore only care if it's lib*.so.?
+ *
+ * @param[in] the path to check.
+ * @return true if matches, false otherwise
+ */
+bool matchBlobHandler(const std::string& filename);
/**
* @brief Given a path, find libraries (*.so only) and load them.
*
+ * @param[in] manager - pointer to a manager
* @param[in] paths - list of fully qualified paths to libraries to load.
+ * @param[in] sys - pointer to implementation of the dlsys interface.
*/
-void loadLibraries(const std::string& path);
+void loadLibraries(ManagerInterface* manager, const std::string& path,
+ const internal::DlSysInterface* sys = &internal::dlsys_impl);
} // namespace blobs