manager: return abstract base type
Unit-tests later required knowing the vtable for a BlobManager, and this
should avoid that needless complication.
Change-Id: I7a208d08c2065b7383fd5095e00d17c1ab3b0cf5
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/blobs-ipmid/manager.hpp b/blobs-ipmid/manager.hpp
index 14c8b98..884271c 100644
--- a/blobs-ipmid/manager.hpp
+++ b/blobs-ipmid/manager.hpp
@@ -256,6 +256,6 @@
*
* @return a pointer to the BlobManager instance.
*/
-BlobManager* getBlobManager();
+ManagerInterface* getBlobManager();
} // namespace blobs
diff --git a/example/example.cpp b/example/example.cpp
index 9209798..c17d71d 100644
--- a/example/example.cpp
+++ b/example/example.cpp
@@ -174,7 +174,7 @@
void setupExampleHandler()
{
- BlobManager* manager = getBlobManager();
+ auto* manager = getBlobManager();
if (!manager->registerHandler(std::make_unique<ExampleBlobHandler>()))
{
log<level::ERR>("Failed to register Example Handler");
diff --git a/main.cpp b/main.cpp
index f897fda..c6b5b04 100644
--- a/main.cpp
+++ b/main.cpp
@@ -55,9 +55,8 @@
return IPMI_CC_INVALID;
}
- BlobManager* manager = getBlobManager();
- return processBlobCommand(command, manager, &crc, reqBuf, replyCmdBuf,
- dataLen);
+ return processBlobCommand(command, getBlobManager(), &crc, reqBuf,
+ replyCmdBuf, dataLen);
}
/* TODO: this should come from the makefile or recipe... */
diff --git a/manager.cpp b/manager.cpp
index 5ab7eb3..6a94c1a 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -347,7 +347,7 @@
static std::unique_ptr<BlobManager> manager;
-BlobManager* getBlobManager()
+ManagerInterface* getBlobManager()
{
if (manager == nullptr)
{