Api changes in AddReportFuture version

Added support for CollectionFunction, CollectionDuration,
CollectionTimeScope, ReportUpdates, AppendLimit.

New API separates Id and Name, user can decide to pass only Name
to auto generate Id or pass Id which needs to be unique.

Tested:
- No functional changes to old API, everything works as before
- All use cases can be replaced with new API to achieve same results
- New features which require new API work as expected

Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Change-Id: I647efab36d90a548754f89968223e162a087481e
diff --git a/src/report.hpp b/src/report.hpp
index 5d675bf..72563f5 100644
--- a/src/report.hpp
+++ b/src/report.hpp
@@ -22,7 +22,8 @@
   public:
     Report(boost::asio::io_context& ioc,
            const std::shared_ptr<sdbusplus::asio::object_server>& objServer,
-           const std::string& reportName, const ReportingType reportingType,
+           const std::string& reportId, const std::string& reportName,
+           const ReportingType reportingType,
            std::vector<ReportAction> reportActions, const Milliseconds period,
            const uint64_t appendLimitIn, const ReportUpdates reportUpdatesIn,
            interfaces::ReportManager& reportManager,
@@ -36,14 +37,14 @@
     Report& operator=(const Report&) = delete;
     Report& operator=(Report&&) = delete;
 
-    std::string getName() const override
+    std::string getId() const override
     {
-        return name;
+        return id;
     }
 
     std::string getPath() const override
     {
-        return path;
+        return reportDir + id;
     }
 
     void updateReadings() override;
@@ -59,9 +60,10 @@
     void setReportUpdates(const ReportUpdates newReportUpdates);
     static uint64_t getSensorCount(
         std::vector<std::shared_ptr<interfaces::Metric>>& metrics);
+    interfaces::JsonStorage::FilePath fileName() const;
 
+    std::string id;
     std::string name;
-    std::string path;
     ReportingType reportingType;
     Milliseconds interval;
     std::vector<ReportAction> reportActions;
@@ -79,7 +81,6 @@
     std::vector<std::shared_ptr<interfaces::Metric>> metrics;
     boost::asio::steady_timer timer;
 
-    interfaces::JsonStorage::FilePath fileName;
     interfaces::JsonStorage& reportStorage;
     bool enabled;