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)
     {