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;
     }