add handler logic to handle SysPsuHardReset

Add handler logic to handler for SysPsuHardReset such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new ones).
Change-Id: Id5dae85cbc54db7dee3cb5e62ed80c77ff3d5719
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/handler.hpp b/handler.hpp
index 735ee15..a068fce 100644
--- a/handler.hpp
+++ b/handler.hpp
@@ -41,6 +41,14 @@
      * @throw IpmiException on failure.
      */
     virtual VersionTuple getCpldVersion(unsigned int id) const = 0;
+
+    /**
+     * Set the PSU Reset delay.
+     *
+     * @param[in] delay - delay in seconds.
+     * @throw IpmiException on failure.
+     */
+    virtual void psuResetDelay(std::uint32_t delay) const = 0;
 };
 
 class Handler : public HandlerInterface
@@ -52,6 +60,7 @@
     std::tuple<std::uint8_t, std::string> getEthDetails() const override;
     std::int64_t getRxPackets(const std::string& name) const override;
     VersionTuple getCpldVersion(unsigned int id) const override;
+    void psuResetDelay(std::uint32_t delay) const override;
 };
 
 extern Handler handlerImpl;