1 #include "snmp_client.hpp" 2 3 #include "snmp_conf_manager.hpp" 4 #include "snmp_serialize.hpp" 5 6 namespace phosphor 7 { 8 namespace network 9 { 10 namespace snmp 11 { 12 13 Client::Client(sdbusplus::bus::bus& bus, const char* objPath, 14 ConfManager& parent, const std::string& address, uint16_t port) : 15 Ifaces(bus, objPath, Ifaces::action::defer_emit), 16 id(std::stol(std::filesystem::path(objPath).filename())), parent(parent) 17 { 18 this->address(address); 19 this->port(port); 20 21 // Emit deferred signal. 22 emit_object_added(); 23 } 24 25 std::string Client::address(std::string value) 26 { 27 if (value == Ifaces::address()) 28 { 29 return value; 30 } 31 32 parent.checkClientConfigured(value, port()); 33 34 auto addr = Ifaces::address(value); 35 serialize(id, *this, parent.dbusPersistentLocation); 36 return addr; 37 } 38 39 uint16_t Client::port(uint16_t value) 40 { 41 if (value == Ifaces::port()) 42 { 43 return value; 44 } 45 46 parent.checkClientConfigured(address(), value); 47 48 auto port = Ifaces::port(value); 49 serialize(id, *this, parent.dbusPersistentLocation); 50 return port; 51 } 52 53 void Client::delete_() 54 { 55 parent.deleteSNMPClient(id); 56 } 57 58 } // namespace snmp 59 } // namespace network 60 } // namespace phosphor 61