LCOV - code coverage report
Current view: top level - vnsw/agent/resource_manager - resource_manager.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 0 4 0.0 %
Date: 2026-11-09 02:10:49 Functions: 0 4 0.0 %
Legend: Lines: hit not hit

          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             : #ifndef vnsw_agent_resource_manager_hpp
       7             : #define vnsw_agent_resource_manager_hpp
       8             : 
       9             : #include <resource_manager/resource_cmn.h>
      10             : #include <resource_manager/resource_table.h>
      11             : 
      12             : 
      13             : class Resource;
      14             : class ResourceKey;
      15             : class ResourceData;
      16             : class ResourceTable;
      17             : class ResourceRestoreReq;
      18             : class ResourceBackupManager;
      19             : 
      20             : // Resource maanager is to restore the resources.
      21             : // and retain the old labels after reading form the File.
      22             : class ResourceManager {
      23             : public:
      24             :     typedef boost::shared_ptr<ResourceKey> KeyPtr;
      25             :     typedef boost::shared_ptr<ResourceData> DataPtr;
      26             :     typedef boost::shared_ptr<ResourceRestoreReq> ResourceRestoreReqPtr;
      27             : 
      28             :     ResourceManager(Agent *agent);
      29             :     ~ResourceManager();
      30             : 
      31             :     void Init();
      32             : 
      33             :     void ReserveIndex(Resource::Type, uint32_t index);
      34             :     void ReleaseIndex(Resource::Type, uint32_t index);
      35             : 
      36             :     ResourceManager::DataPtr Allocate(KeyPtr key);
      37             :     void EnqueueRestore(KeyPtr key, DataPtr data);
      38             :     void RestoreResource(KeyPtr key, DataPtr data);
      39             :     void Release(KeyPtr key);
      40             :     void Release(Resource::Type, uint32_t index);
      41             :     ResourceTable *resource_table(uint8_t type);
      42           0 :     ResourceBackupManager *backup_mgr() {return backup_mgr_.get();}
      43             :     bool Audit();
      44             : 
      45             :     //Work queue to restore the data.
      46             :     bool WorkQueueRestoreProcess(ResourceRestoreReqPtr restore_data);
      47           0 :     Agent *agent() {return agent_;}
      48             : private:
      49             :     Agent *agent_;
      50             :     boost::scoped_ptr<ResourceTable>resource_table_[Resource::MAX];
      51             :     WorkQueue<ResourceRestoreReqPtr> restore_work_queue_;
      52             :     boost::scoped_ptr<ResourceBackupManager> backup_mgr_;
      53             :     DISALLOW_COPY_AND_ASSIGN(ResourceManager);
      54             : };
      55             : // Restore request is to restore the Data & Key from File.
      56             : class ResourceRestoreReq {
      57             : public:
      58             :     ResourceRestoreReq(ResourceManager::KeyPtr key,
      59             :                        ResourceManager::DataPtr data);
      60             :     virtual ~ResourceRestoreReq();
      61           0 :     ResourceManager::KeyPtr key() {return key_;}
      62           0 :     ResourceManager::DataPtr data() {return data_;}
      63             : 
      64             : private:
      65             :     ResourceManager::KeyPtr key_;
      66             :     ResourceManager::DataPtr data_;
      67             :     DISALLOW_COPY_AND_ASSIGN(ResourceRestoreReq);
      68             : };
      69             : 
      70             : #endif //resource_manager

Generated by: LCOV version 1.14