1*1dc9178dSRatan Gupta #include "config.h" 2*1dc9178dSRatan Gupta #include "snmp_conf_manager.hpp" 3*1dc9178dSRatan Gupta 4*1dc9178dSRatan Gupta #include <phosphor-logging/log.hpp> 5*1dc9178dSRatan Gupta #include <sdbusplus/bus.hpp> 6*1dc9178dSRatan Gupta #include <sdbusplus/server/manager.hpp> 7*1dc9178dSRatan Gupta 8*1dc9178dSRatan Gupta #include <memory> 9*1dc9178dSRatan Gupta 10*1dc9178dSRatan Gupta /* Need a custom deleter for freeing up sd_event */ 11*1dc9178dSRatan Gupta struct EventDeleter 12*1dc9178dSRatan Gupta { 13*1dc9178dSRatan Gupta void operator()(sd_event* event) const 14*1dc9178dSRatan Gupta { 15*1dc9178dSRatan Gupta event = sd_event_unref(event); 16*1dc9178dSRatan Gupta } 17*1dc9178dSRatan Gupta }; 18*1dc9178dSRatan Gupta 19*1dc9178dSRatan Gupta using EventPtr = std::unique_ptr<sd_event, EventDeleter>; 20*1dc9178dSRatan Gupta 21*1dc9178dSRatan Gupta int main(int argc, char* argv[]) 22*1dc9178dSRatan Gupta { 23*1dc9178dSRatan Gupta using namespace phosphor::logging; 24*1dc9178dSRatan Gupta 25*1dc9178dSRatan Gupta auto bus = sdbusplus::bus::new_default(); 26*1dc9178dSRatan Gupta 27*1dc9178dSRatan Gupta sd_event* event = nullptr; 28*1dc9178dSRatan Gupta auto r = sd_event_default(&event); 29*1dc9178dSRatan Gupta if (r < 0) 30*1dc9178dSRatan Gupta { 31*1dc9178dSRatan Gupta log<level::ERR>("Error creating a default sd_event handler"); 32*1dc9178dSRatan Gupta return r; 33*1dc9178dSRatan Gupta } 34*1dc9178dSRatan Gupta 35*1dc9178dSRatan Gupta EventPtr eventPtr{event}; 36*1dc9178dSRatan Gupta event = nullptr; 37*1dc9178dSRatan Gupta 38*1dc9178dSRatan Gupta // Attach the bus to sd_event to service user requests 39*1dc9178dSRatan Gupta bus.attach_event(eventPtr.get(), SD_EVENT_PRIORITY_NORMAL); 40*1dc9178dSRatan Gupta 41*1dc9178dSRatan Gupta // Add sdbusplus Object Manager for the 'root' path of the snmp. 42*1dc9178dSRatan Gupta sdbusplus::server::manager::manager objManager(bus, OBJ_NETWORK_SNMP); 43*1dc9178dSRatan Gupta bus.request_name(BUSNAME_NETWORK_SNMP); 44*1dc9178dSRatan Gupta 45*1dc9178dSRatan Gupta auto manager = std::make_unique<phosphor::network::snmp::ConfManager>( 46*1dc9178dSRatan Gupta bus, OBJ_NETWORK_SNMP); 47*1dc9178dSRatan Gupta 48*1dc9178dSRatan Gupta return sd_event_loop(eventPtr.get()); 49*1dc9178dSRatan Gupta } 50