summaryrefslogtreecommitdiffstats
path: root/include/ipmid
diff options
context:
space:
mode:
Diffstat (limited to 'include/ipmid')
-rw-r--r--include/ipmid/message.hpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/ipmid/message.hpp b/include/ipmid/message.hpp
index 9bc1147..92a0c25 100644
--- a/include/ipmid/message.hpp
+++ b/include/ipmid/message.hpp
@@ -257,6 +257,27 @@ struct Payload
return packRet;
}
+ /**
+ * @brief Prepends another payload to this one
+ *
+ * Avoid using this unless absolutely required since it inserts into the
+ * front of the response payload.
+ *
+ * @param p - The payload to prepend
+ *
+ * @retunr int - non-zero on prepend errors
+ */
+ int prepend(const ipmi::message::Payload& p)
+ {
+ if (bitCount != 0 || p.bitCount != 0)
+ {
+ return 1;
+ }
+ raw.reserve(raw.size() + p.raw.size());
+ raw.insert(raw.begin(), p.raw.begin(), p.raw.end());
+ return 0;
+ }
+
/******************************************************************
* Request operations
*****************************************************************/
@@ -518,6 +539,21 @@ struct Response
return payload.pack(t);
}
+ /**
+ * @brief Prepends another payload to this one
+ *
+ * Avoid using this unless absolutely required since it inserts into the
+ * front of the response payload.
+ *
+ * @param p - The payload to prepend
+ *
+ * @retunr int - non-zero on prepend errors
+ */
+ int prepend(const ipmi::message::Payload& p)
+ {
+ return payload.prepend(p);
+ }
+
Payload payload;
Context::ptr ctx;
Cc cc;
OpenPOWER on IntegriCloud