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

Generated by: LCOV version 1.14