Get the timestamp from the log entry

Change-Id: Id00f6e1e6f65c17babc5d06abe1b9fc39a4de8b8
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/selutility.cpp b/selutility.cpp
index 0107515..3f9d9ab 100644
--- a/selutility.cpp
+++ b/selutility.cpp
@@ -182,6 +182,38 @@
     return internal::prepareSELEntry(objPath, iter);
 }
 
+std::chrono::seconds getEntryTimeStamp(const std::string& objPath)
+{
+    sdbusplus::bus::bus bus{ipmid_get_sd_bus_connection()};
+
+    auto service = ipmi::getService(bus, logEntryIntf, objPath);
+
+    using namespace std::string_literals;
+    static const auto propTimeStamp = "Timestamp"s;
+
+    auto methodCall = bus.new_method_call(service.c_str(),
+                                          objPath.c_str(),
+                                          propIntf,
+                                          "Get");
+    methodCall.append(logEntryIntf);
+    methodCall.append(propTimeStamp);
+
+    auto reply = bus.call(methodCall);
+    if (reply.is_method_error())
+    {
+        log<level::ERR>("Error in reading Timestamp from Entry interface");
+        elog<InternalFailure>();
+    }
+
+    sdbusplus::message::variant<uint64_t> timeStamp;
+    reply.read(timeStamp);
+
+    std::chrono::milliseconds chronoTimeStamp(
+            sdbusplus::message::variant_ns::get<uint64_t>(timeStamp));
+
+    return std::chrono::duration_cast<std::chrono::seconds>(chronoTimeStamp);
+}
+
 } // namespace sel
 
 } // namespace ipmi