Fix utility.hpp to use correct types for Request and Context
When requesting a Request or Context object as part of the handler
signature, it should be a std::shared_ptr<ipmi::Context> or
std::shared_ptr<ipmi:message::Request>. There was a bug that made it so
it was not possible to have either of those in the signature. This
commit enables both.
Change-Id: Ib52000f643d7b5f21bc4022629e7d7b03a524dc1
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/include/ipmid/utility.hpp b/include/ipmid/utility.hpp
index 3a36434..79c76f7 100644
--- a/include/ipmid/utility.hpp
+++ b/include/ipmid/utility.hpp
@@ -27,7 +27,12 @@
namespace ipmi
{
+// forward declare Context and Request for NonIpmiArgsCount
struct Context;
+namespace message
+{
+struct Request;
+}
namespace utility
{
@@ -86,7 +91,11 @@
{
constexpr static std::size_t size()
{
- if constexpr (std::is_same<FirstArg, ipmi::Context>::value ||
+ if constexpr (std::is_same<
+ FirstArg,
+ std::shared_ptr<ipmi::message::Request>>::value ||
+ std::is_same<FirstArg,
+ std::shared_ptr<ipmi::Context>>::value ||
std::is_same<FirstArg, boost::asio::yield_context>::value)
{
return 1 + NonIpmiArgsCount<std::tuple<OtherArgs...>>::size();