set up data handler mechanism
Data that comes from outside of the IPMI packet will leverage a data
interface implementation. Only the IPMI blocktransfer (or really KCS)
will not use this external interface.
Change-Id: I7806da04c070dc3d6a79070ea563aeec63221dca
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/data_handler.hpp b/data_handler.hpp
index 07101f7..79e228f 100644
--- a/data_handler.hpp
+++ b/data_handler.hpp
@@ -1,5 +1,8 @@
#pragma once
+#include <cstdint>
+#include <vector>
+
namespace blobs
{
@@ -10,6 +13,20 @@
{
public:
virtual ~DataInterface() = default;
+
+ /**
+ * Copy bytes from external interface (blocking call).
+ *
+ * @param[in] length - number of bytes to copy
+ * @return the bytes read
+ */
+ virtual std::vector<std::uint8_t> copyFrom(std::uint32_t length) = 0;
+};
+
+struct DataHandlerPack
+{
+ std::uint16_t bitmask;
+ DataInterface* handler;
};
} // namespace blobs