sensor: Modify mako template to generate sensor getter func

Change-Id: If198d9a9fb1145bbaeda528e3f80356527b80059
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/scripts/writesensor.mako.cpp b/scripts/writesensor.mako.cpp
index 5b1ffd7..b2da7ca 100644
--- a/scripts/writesensor.mako.cpp
+++ b/scripts/writesensor.mako.cpp
@@ -10,14 +10,17 @@
     serviceInterface = sensor["serviceInterface"]
     if serviceInterface == "org.freedesktop.DBus.Properties":
         updateFunc = "set::"
+        getFunc = "get::"
     elif serviceInterface == "xyz.openbmc_project.Inventory.Manager":
         updateFunc = "notify::"
+        getFunc = "inventory::get::"
     else:
         assert "Un-supported interface: " + serviceInterface
     endif
     if serviceInterface not in interfaceDict:
         interfaceDict[serviceInterface] = {}
         interfaceDict[serviceInterface]["updateFunc"] = updateFunc
+        interfaceDict[serviceInterface]["getFunc"] = getFunc
 %>\
 % endfor
 
@@ -46,6 +49,16 @@
     return set::readingAssertion<${type}>(cmdData, sensorInfo);
 }
 
+namespace get
+{
+
+inline GetSensorResponse readingAssertion(const Info& sensorInfo)
+{
+    return ipmi::sensor::get::readingAssertion<${type}>(sensorInfo);
+}
+
+} //namespace get
+
 } // namespace sensor_${key}
 
 %elif "readingData" == readingType:
@@ -59,6 +72,16 @@
     return set::readingData<${type}>(cmdData, sensorInfo);
 }
 
+namespace get
+{
+
+inline GetSensorResponse readingData(const Info& sensorInfo)
+{
+    return ipmi::sensor::get::readingData<${type}>(sensorInfo);
+}
+
+} //namespace get
+
 } // namespace sensor_${key}
 
 %endif
@@ -81,17 +104,21 @@
        valueReadingType = sensor["readingType"]
        updateFunc = interfaceDict[serviceInterface]["updateFunc"]
        updateFunc += sensor["readingType"]
+       getFunc = interfaceDict[serviceInterface]["getFunc"]
+       getFunc += sensor["readingType"]
        if "readingAssertion" == valueReadingType:
            updateFunc = "sensor_" + str(key) + "::" + valueReadingType
+           getFunc = "sensor_" + str(key) + "::get::" + valueReadingType
        elif "readingData" == valueReadingType:
            updateFunc = "sensor_" + str(key) + "::" + valueReadingType
+           getFunc = "sensor_" + str(key) + "::get::" + valueReadingType
        sensorInterface = serviceInterface
        if serviceInterface == "org.freedesktop.DBus.Properties":
            sensorInterface = next(iter(interfaces))
        mutability = sensor.get("mutability", "Mutability::Read")
 %>
         ${sensorType},"${path}","${sensorInterface}",${readingType},${multiplier},
-        ${offset},${exp},${offset * pow(10,exp)},${updateFunc},Mutability(${mutability}),{
+        ${offset},${exp},${offset * pow(10,exp)},${updateFunc},${getFunc},Mutability(${mutability}),{
     % for interface,properties in interfaces.items():
             {"${interface}",{
             % for dbus_property,property_value in properties.items():
diff --git a/types.hpp b/types.hpp
index 330a8a6..41dddd9 100644
--- a/types.hpp
+++ b/types.hpp
@@ -117,6 +117,7 @@
    Exponent exponentB;
    ScaledOffset scaledOffset;
    std::function<uint8_t(SetSensorReadingReq&, const Info&)> updateFunc;
+   std::function<GetSensorResponse(const Info&)> getFunc;
    Mutability mutability;
    DbusInterfaceMap propertyInterfaces;
 };