1*6b492fbfSDeepak Kodihalli #include <memory>
2*6b492fbfSDeepak Kodihalli #include <iostream>
3*6b492fbfSDeepak Kodihalli #include "occ_pass_through.hpp"
4*6b492fbfSDeepak Kodihalli #include "occ_finder.hpp"
5*6b492fbfSDeepak Kodihalli 
6*6b492fbfSDeepak Kodihalli namespace open_power
7*6b492fbfSDeepak Kodihalli {
8*6b492fbfSDeepak Kodihalli namespace occ
9*6b492fbfSDeepak Kodihalli {
10*6b492fbfSDeepak Kodihalli namespace pass_through
11*6b492fbfSDeepak Kodihalli {
12*6b492fbfSDeepak Kodihalli 
13*6b492fbfSDeepak Kodihalli void run()
14*6b492fbfSDeepak Kodihalli {
15*6b492fbfSDeepak Kodihalli     auto bus = sdbusplus::bus::new_default();
16*6b492fbfSDeepak Kodihalli     sdbusplus::server::manager::manager objManager(bus,
17*6b492fbfSDeepak Kodihalli                                                    OCC_PASS_THROUGH_ROOT);
18*6b492fbfSDeepak Kodihalli 
19*6b492fbfSDeepak Kodihalli     std::vector<std::unique_ptr<PassThrough>> objects;
20*6b492fbfSDeepak Kodihalli     auto occs = open_power::occ::finder::get();
21*6b492fbfSDeepak Kodihalli 
22*6b492fbfSDeepak Kodihalli     for (const auto& occ : occs)
23*6b492fbfSDeepak Kodihalli     {
24*6b492fbfSDeepak Kodihalli         auto occPassThrough = object(occ);
25*6b492fbfSDeepak Kodihalli         objects.emplace_back(
26*6b492fbfSDeepak Kodihalli             std::make_unique<PassThrough>(bus, occPassThrough.c_str()));
27*6b492fbfSDeepak Kodihalli     }
28*6b492fbfSDeepak Kodihalli     bus.request_name(OCC_PASS_THROUGH_BUSNAME);
29*6b492fbfSDeepak Kodihalli 
30*6b492fbfSDeepak Kodihalli     while (true)
31*6b492fbfSDeepak Kodihalli     {
32*6b492fbfSDeepak Kodihalli         bus.process_discard();
33*6b492fbfSDeepak Kodihalli         bus.wait();
34*6b492fbfSDeepak Kodihalli     }
35*6b492fbfSDeepak Kodihalli }
36*6b492fbfSDeepak Kodihalli 
37*6b492fbfSDeepak Kodihalli PassThrough::PassThrough(
38*6b492fbfSDeepak Kodihalli     sdbusplus::bus::bus& bus,
39*6b492fbfSDeepak Kodihalli     const char* path) :
40*6b492fbfSDeepak Kodihalli     Iface(bus, path),
41*6b492fbfSDeepak Kodihalli     path(path)
42*6b492fbfSDeepak Kodihalli {
43*6b492fbfSDeepak Kodihalli     this->emit_object_added();
44*6b492fbfSDeepak Kodihalli }
45*6b492fbfSDeepak Kodihalli 
46*6b492fbfSDeepak Kodihalli std::vector<int32_t> PassThrough::send(std::vector<int32_t> command)
47*6b492fbfSDeepak Kodihalli {
48*6b492fbfSDeepak Kodihalli     return {};
49*6b492fbfSDeepak Kodihalli }
50*6b492fbfSDeepak Kodihalli 
51*6b492fbfSDeepak Kodihalli } // namespace pass_through
52*6b492fbfSDeepak Kodihalli } // namespace occ
53*6b492fbfSDeepak Kodihalli } // namespace open_power
54