summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Venture <venture@google.com>2018-10-01 18:37:34 -0700
committerPatrick Venture <venture@google.com>2018-10-04 13:57:21 +0000
commit73eb687a46cab0d3d9d679e1af8a7a13353bcd11 (patch)
treeec7e7819a2dfe0a044d0ecd2f6b0009be6126e9d
parent7210b3109d3c93dd95eec0f74ab0635cba55fe2b (diff)
downloadphosphor-ipmi-blobs-73eb687a46cab0d3d9d679e1af8a7a13353bcd11.tar.gz
phosphor-ipmi-blobs-73eb687a46cab0d3d9d679e1af8a7a13353bcd11.zip
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>
-rw-r--r--blobs-ipmid/manager.hpp2
-rw-r--r--example/example.cpp2
-rw-r--r--main.cpp5
-rw-r--r--manager.cpp2
4 files changed, 5 insertions, 6 deletions
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 @@ class BlobManager : public ManagerInterface
*
* @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() __attribute__((constructor));
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 @@ static ipmi_ret_t handleBlobCommand(ipmi_cmd_t cmd, const uint8_t* reqBuf,
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 @@ bool BlobManager::getSession(uint16_t* sess)
static std::unique_ptr<BlobManager> manager;
-BlobManager* getBlobManager()
+ManagerInterface* getBlobManager()
{
if (manager == nullptr)
{
OpenPOWER on IntegriCloud