blob: fc16a343fa9fc43511dfa8488098e0611fbb7a55 [file] [log] [blame]
#include "snmp_client.hpp"
#include "snmp_conf_manager.hpp"
#include "snmp_serialize.hpp"
namespace phosphor
{
namespace network
{
namespace snmp
{
Client::Client(sdbusplus::bus_t& bus, const char* objPath, ConfManager& parent,
const std::string& address, uint16_t port) :
Ifaces(bus, objPath, Ifaces::action::defer_emit),
id(std::stol(std::filesystem::path(objPath).filename())), parent(parent)
{
this->address(address);
this->port(port);
this->transportProtocol(sdbusplus::server::xyz::openbmc_project::network::
Client::TransportProtocol::UDP);
// Emit deferred signal.
emit_object_added();
}
std::string Client::address(std::string value)
{
if (value == Ifaces::address())
{
return value;
}
parent.checkClientConfigured(value, port());
auto addr = Ifaces::address(value);
serialize(id, *this, parent.dbusPersistentLocation);
return addr;
}
uint16_t Client::port(uint16_t value)
{
if (value == Ifaces::port())
{
return value;
}
parent.checkClientConfigured(address(), value);
auto port = Ifaces::port(value);
serialize(id, *this, parent.dbusPersistentLocation);
return port;
}
void Client::delete_()
{
parent.deleteSNMPClient(id);
}
} // namespace snmp
} // namespace network
} // namespace phosphor