Implement org.open_power.OCC.PassThrough

This d-bus interface is implemented by the
open_power::occ::pass_through::PassThrough class.

Change-Id: I6bce9e609b7b977418bcfee15e97432cb7d9e6b3
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/occ_pass_through.cpp b/occ_pass_through.cpp
new file mode 100644
index 0000000..aef0e04
--- /dev/null
+++ b/occ_pass_through.cpp
@@ -0,0 +1,53 @@
+#include <memory>
+#include <iostream>
+#include "occ_pass_through.hpp"
+#include "occ_finder.hpp"
+
+namespace open_power
+{
+namespace occ
+{
+namespace pass_through
+{
+
+void run()
+{
+    auto bus = sdbusplus::bus::new_default();
+    sdbusplus::server::manager::manager objManager(bus,
+                                                   OCC_PASS_THROUGH_ROOT);
+
+    std::vector<std::unique_ptr<PassThrough>> objects;
+    auto occs = open_power::occ::finder::get();
+
+    for (const auto& occ : occs)
+    {
+        auto occPassThrough = object(occ);
+        objects.emplace_back(
+            std::make_unique<PassThrough>(bus, occPassThrough.c_str()));
+    }
+    bus.request_name(OCC_PASS_THROUGH_BUSNAME);
+
+    while (true)
+    {
+        bus.process_discard();
+        bus.wait();
+    }
+}
+
+PassThrough::PassThrough(
+    sdbusplus::bus::bus& bus,
+    const char* path) :
+    Iface(bus, path),
+    path(path)
+{
+    this->emit_object_added();
+}
+
+std::vector<int32_t> PassThrough::send(std::vector<int32_t> command)
+{
+    return {};
+}
+
+} // namespace pass_through
+} // namespace occ
+} // namespace open_power