Line data Source code
1 : /* 2 : * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : 6 : #include "cmn/agent.h" 7 : #include "cmn/agent_cmn.h" 8 : #include <sandesh/sandesh_types.h> 9 : #include <sandesh/sandesh.h> 10 : #include "resource_manager/resource_manager.h" 11 : #include "resource_manager/resource_table.h" 12 : #include "resource_manager/resource_cmn.h" 13 : #include "vrf_index.h" 14 : #include "resource_manager/resource_manager_types.h" 15 : #include "resource_manager/resource_backup.h" 16 : 17 74 : VrfIndexResourceKey::VrfIndexResourceKey (ResourceManager *rm, 18 74 : const string& vrf_name):IndexResourceKey(rm, Resource::VRF_INDEX), 19 74 : vrf_name_(vrf_name) { 20 : 21 74 : } 22 : 23 0 : void VrfIndexResourceKey::Backup(ResourceData *data, uint16_t op){ 24 0 : IndexResourceData *index_data = static_cast<IndexResourceData *>(data); 25 0 : if (op == ResourceBackupReq::DEL) { 26 : rm()->backup_mgr()-> 27 0 : sandesh_maps().DeleteVrfResourceEntry(index_data->index()); 28 : } else { 29 0 : VrfIndexResource backup_data; 30 0 : backup_data.set_vrf_name(vrf_name_); 31 0 : backup_data.set_time_stamp(UTCTimestampUsec()); 32 : rm()->backup_mgr()-> 33 0 : sandesh_maps().AddVrfResourceEntry(index_data->index(), 34 : backup_data); 35 0 : } 36 0 : rm()->backup_mgr()->sandesh_maps().vrf_index_table().TriggerBackup(); 37 : 38 0 : } 39 : 40 1050 : bool VrfIndexResourceKey::IsLess(const ResourceKey &rhs) const { 41 1050 : const VrfIndexResourceKey * key = static_cast<const VrfIndexResourceKey*> (&rhs); 42 1050 : return vrf_name_ < key->vrf_name_; 43 : }