LCOV - code coverage report
Current view: top level - vnsw/agent/resource_manager - resource_backup.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 0 2 0.0 %
Date: 2026-08-03 02:19:58 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved.
       3             :  */
       4             : 
       5             : #ifndef vnsw_agent_resource_backup_hpp
       6             : #define vnsw_agent_resource_backup_hpp
       7             : 
       8             : 
       9             : #include "resource_manager/resource_manager.h"
      10             : #include "resource_manager/sandesh_map.h"
      11             : 
      12             : class Timer;
      13             : class ResourceSandeshMaps;
      14             : class ResourceManager;
      15             : class ResourceTable;
      16             : class ResourceData;
      17             : 
      18             : class ResourceBackupReq {
      19             : public:
      20             :     enum Op {
      21             :         ADD = 1,
      22             :         DEL,
      23             :     };
      24             : 
      25             :     ResourceBackupReq(ResourceManager::KeyPtr key,
      26             :                              ResourceManager::DataPtr data,
      27             :                              Op op);
      28             :     virtual ~ResourceBackupReq();
      29             :     void Process();
      30             :     ResourceManager::KeyPtr key() {return key_;}
      31             :     ResourceManager::DataPtr data() {return data_;}
      32             : 
      33             : 
      34             : private:
      35             :     ResourceManager::KeyPtr key_;
      36             :     ResourceManager::DataPtr data_;
      37             :     Op op_;
      38             :     DISALLOW_COPY_AND_ASSIGN(ResourceBackupReq);
      39             : };
      40             : //Backup manager is to Process the Resource data and store
      41             : //it in to a file using Sandesh encoding.
      42             : class ResourceBackupManager {
      43             : public:
      44             :     typedef boost::shared_ptr<ResourceBackupReq> ResourceBackupReqPtr;
      45             :     ResourceBackupManager(ResourceManager *mgr);
      46             :     virtual ~ResourceBackupManager();
      47             : 
      48             :     void Init();
      49             :     ResourceSandeshMaps& sandesh_maps();
      50             :     static uint32_t ReadResourceDataFromFile(const std::string &file_name,
      51             :                                              std::unique_ptr<uint8_t> *buf);
      52             : 
      53           0 :     Agent *agent() {return agent_;}
      54           0 :     ResourceManager *resource_manager() {return resource_manager_;}
      55             :     bool WorkQueueBackUpProcess(ResourceBackupReqPtr backup_data);
      56             :     void BackupResource(ResourceManager::KeyPtr key,
      57             :                         ResourceManager::DataPtr data,
      58             :                         ResourceBackupReq::Op op);
      59             :     void AuditDone();
      60             : 
      61             : private:
      62             :     ResourceManager *resource_manager_;
      63             :     Agent *agent_;
      64             :     ResourceSandeshMaps sandesh_maps_;
      65             :     // Work queue to backup the data.
      66             :     WorkQueue<ResourceBackupReqPtr> backup_work_queue_;
      67             :     EventNotifyHandle::Ptr audit_handle_;
      68             :     DISALLOW_COPY_AND_ASSIGN(ResourceBackupManager);
      69             : };
      70             : 
      71             : #endif

Generated by: LCOV version 1.14