Add helper function to see if PMBus file exists

Due to some odd power supply behavior on some systems, certain PMBus
files in sysfs end up missing. Adding in a helper function to avoid
spurious tracing if an application so chooses to check for existence
before trying to read one of those files. See openbmc/openbmc#2364 issue
opened for this problem with the missing files.

Change-Id: Ib295beb7ff1733da6ecbcd6966b76b918ade7f54
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
diff --git a/pmbus.cpp b/pmbus.cpp
index 5fbbe3e..12b8aa8 100644
--- a/pmbus.cpp
+++ b/pmbus.cpp
@@ -127,6 +127,13 @@
     return value != 0;
 }
 
+bool PMBus::exists(const std::string& name, Type type)
+{
+    auto path = getPath(type);
+    path /= name;
+    return fs::exists(path);
+}
+
 uint64_t PMBus::read(const std::string& name, Type type)
 {
     uint64_t data = 0;
diff --git a/pmbus.hpp b/pmbus.hpp
index fc9a1cb..7089445 100644
--- a/pmbus.hpp
+++ b/pmbus.hpp
@@ -175,6 +175,16 @@
                            size_t page,
                            Type type);
         /**
+         * Checks if the file for the given name and type exists.
+         *
+         * @param[in] name   - path concatenated to basePath to read
+         * @param[in] type   - Path type
+         *
+         * @return bool - True if file exists, false if it does not.
+         */
+        bool exists(const std::string& name, Type type);
+
+        /**
          * Read byte(s) from file in sysfs.
          *
          * @param[in] name   - path concatenated to basePath to read