blob: 3f6a405289bb052c1600889d451f985dfe69cd15 [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::bus& bus, const char* objPath,
ConfManager& parent, const std::string& address, uint16_t port) :
Ifaces(bus, objPath, true),
id(std::stol(std::experimental::filesystem::path(objPath).filename())),
parent(parent)
{
this->address(address);
this->port(port);
// 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