utility to transform an FFDCFile list for PEL consumption
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: Iae1bc8ed1a1eea9f9d7593e59c21a861a8236a34
diff --git a/util/ffdc_file.hpp b/util/ffdc_file.hpp
index f23fddd..6f71e2a 100644
--- a/util/ffdc_file.hpp
+++ b/util/ffdc_file.hpp
@@ -65,7 +65,7 @@
*
* @return file descriptor
*/
- int getFileDescriptor()
+ int getFileDescriptor() const
{
// Return the integer file descriptor within the FileDescriptor object
return descriptor();
@@ -153,4 +153,21 @@
FileDescriptor descriptor{};
};
+using FFDCTuple =
+ std::tuple<FFDCFormat, uint8_t, uint8_t, sdbusplus::message::unix_fd>;
+
+/** Transforms a list of FFDC files to a list of FFDC tuples. */
+inline void transformFFDC(const std::vector<FFDCFile>& i_files,
+ std::vector<FFDCTuple>& o_tuples)
+{
+ o_tuples.clear();
+
+ std::transform(i_files.begin(), i_files.end(), o_tuples.begin(),
+ [](const auto& e) {
+ return FFDCTuple(
+ e.getFormat(), e.getSubType(), e.getVersion(),
+ sdbusplus::message::unix_fd(e.getFileDescriptor()));
+ });
+}
+
} // namespace util
diff --git a/util/file_descriptor.hpp b/util/file_descriptor.hpp
index 51c125e..425a2bb 100644
--- a/util/file_descriptor.hpp
+++ b/util/file_descriptor.hpp
@@ -77,7 +77,7 @@
* @return File descriptor. Returns -1 if this object does not contain an
* open file descriptor.
*/
- int operator()()
+ int operator()() const
{
return fd;
}