5 #include <boost/bind/bind.hpp>
17 using namespace boost::placeholders;
23 "virtual-network-network-ipam",
43 : id_type(rhs.id_type), id_name(rhs.id_name),
44 node(rhs.node), obj(rhs.obj) {
51 : db_(NULL), db_graph_(NULL),
78 id_map_.insert(make_pair(
"network-ipam",
80 id_map_.insert(make_pair(
"virtual-network-network-ipam",
82 id_map_.insert(make_pair(
"virtual-DNS",
84 id_map_.insert(make_pair(
"virtual-DNS-record",
86 id_map_.insert(make_pair(
"global-qos-config",
95 proxy = delta.
node.get();
111 (observer)(proxy, delta.
id_name,
119 (observer)(proxy, delta.
id_name,
130 DNS_TRACE(DnsConfigTrace,
"Error - Received Virtual DNS without a name");
138 DNS_TRACE(DnsConfigTrace,
"Error - Received Virtual DNS Record without a name");
146 DNS_TRACE(DnsConfigTrace,
"Error - Received VNNI without a name");
154 DNS_TRACE(DnsConfigTrace,
"Error - Received Ipam without a name");
162 DNS_TRACE(DnsConfigTrace,
"Error - Received GlobalQosConfig without a"
170 std::string link_name) {
175 return static_cast<IFMapNode *
>(iter.target());
181 std::string link_name,
182 std::string node_type) {
186 if (link->
metadata() == link_name) {
196 for (ChangeList::const_iterator iter = change_list.begin();
197 iter != change_list.end(); ++iter) {
198 IdentifierMap::iterator loc =
id_map_.find(iter->id_type);
200 (loc->second)(*iter);
std::vector< ConfigDelta > ChangeList
edge_iterator edge_list_begin(DBGraph *graph)
bool HasAdjacencies(DBGraph *graph) const
edge_iterator edge_list_end(DBGraph *graph)
boost::function< void(IFMapNodeProxy *, const std::string &, EventType)> Observer
DnsConfigData global_qos_config_
static const std::string EventString[]
void ProcessGlobalQosConfig(const ConfigDelta &delta)
boost::scoped_ptr< ConfigListener > listener_
static int config_task_id_
void ProcessVNNI(const ConfigDelta &delta)
void ProcessNode(const ConfigDelta &delta, DnsConfigData &config_data, Observer observer)
virtual ~DnsConfigManager()
DnsConfigData virt_dns_rec_config_
DnsConfigData vnni_config_
IFMapNode * FindTarget(IFMapNode *node, std::string link_name)
std::vector< ConfigDelta > ChangeList
void ProcessVirtualDNSRecord(const ConfigDelta &delta)
DnsConfigData ipam_config_
static const char * config_types[]
void Initialize(DB *db, DBGraph *db_graph)
static const int kConfigTaskInstanceId
void ProcessVirtualDNS(const ConfigDelta &delta)
static uint32_t config_types_size
DnsConfigData virt_dns_config_
void ProcessNetworkIpam(const ConfigDelta &delta)
void ProcessChanges(const ChangeList &change_list)
const std::string & metadata() const
virtual const char * Typename() const =0
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
int GetTaskId(const std::string &name)
static TaskScheduler * GetInstance()
SandeshTraceBufferPtr DnsConfigTraceBuf(SandeshTraceBufferCreate("Config", 2000))
#define DNS_TRACE(Obj,...)
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)
void Add(std::string name, IFMapNodeProxyRef node)
IFMapNodeProxy * Find(std::string name)
void Del(std::string name)
Observer virtual_dns_record