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

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
       3             :  * Copyright Contributors to the OpenSDN project
       4             :  */
       5             : 
       6             : #ifndef __AGENT_OPER_QOS_QUEUE_H
       7             : #define __AGENT_OPER_QOS_QUEUE_H
       8             : 
       9             : #include <cmn/agent.h>
      10             : #include <oper_db.h>
      11             : #include <cmn/index_vector.h>
      12             : 
      13             : class Agent;
      14             : class DB;
      15             : 
      16             : struct QosQueueKey : public AgentOperDBKey {
      17           0 :     QosQueueKey(const boost::uuids::uuid &uuid):
      18           0 :         uuid_(uuid) {}
      19             : 
      20             :     QosQueueKey(const QosQueueKey &rhs):
      21             :         uuid_(rhs.uuid_) {}
      22             : 
      23             :     bool IsLess(const QosQueueKey &rhs) const {
      24             :         return uuid_ < rhs.uuid_;
      25             :     }
      26             : 
      27             :     boost::uuids::uuid uuid_;
      28             : };
      29             : 
      30             : struct QosQueueData : public AgentOperDBData {
      31             : 
      32           0 :     QosQueueData(const Agent *agent, IFMapNode *node, const std::string &name,
      33           0 :                  uint16_t id):
      34           0 :     AgentOperDBData(agent, node), name_(name), id_(id) {}
      35             :     std::string name_;
      36             :     uint16_t id_;
      37             : };
      38             : 
      39             : class QosQueue :
      40             :     AgentRefCount<QosQueue>, public AgentOperDBEntry {
      41             : public:
      42             :     QosQueue(const boost::uuids::uuid &uuid);
      43             :     virtual ~QosQueue();
      44             : 
      45             :     KeyPtr GetDBRequestKey() const;
      46             :     std::string ToString() const;
      47             :     virtual bool IsLess(const DBEntry &rhs) const;
      48             :     virtual bool DBEntrySandesh(Sandesh *resp, std::string &name) const;
      49             : 
      50             :     virtual bool Change(const DBRequest *req);
      51             :     virtual void Delete(const DBRequest *req);
      52             :     virtual void SetKey(const DBRequestKey *key);
      53             :     virtual void PostAdd();
      54             : 
      55           0 :     virtual bool DeleteOnZeroRefCount() const {
      56           0 :         return false;
      57             :     }
      58           0 :     virtual void OnZeroRefCount() {};
      59           0 :     uint32_t GetRefCount() const {
      60           0 :         return AgentRefCount<QosQueue>::GetRefCount();
      61             :     }
      62             : 
      63           0 :     const boost::uuids::uuid& uuid() const {return uuid_;}
      64           0 :     uint32_t  id() const {
      65           0 :         return id_;
      66             :     }
      67           0 :     void set_id(uint32_t id) {
      68           0 :         id_ = id;
      69           0 :     }
      70             : 
      71           0 :     const std::string& name() const {
      72           0 :         return name_;
      73             :     }
      74             : 
      75           0 :     uint16_t nic_queue_id() const {
      76           0 :         return nic_queue_id_;
      77             :     }
      78             : 
      79             : private:
      80             :     boost::uuids::uuid uuid_;
      81             :     uint16_t id_;
      82             :     std::string name_;
      83             :     uint16_t nic_queue_id_;
      84             :     DISALLOW_COPY_AND_ASSIGN(QosQueue);
      85             : };
      86             : 
      87             : class QosQueueTable : public AgentOperDBTable {
      88             : public:
      89             :     static const uint32_t kInvalidIndex=0xFF;
      90             :     QosQueueTable(Agent *agent, DB *db, const std::string &name);
      91             :     virtual ~QosQueueTable();
      92             : 
      93             :     static DBTableBase *CreateTable(Agent *agent, DB *db,
      94             :                                     const std::string &name);
      95             : 
      96             :     virtual std::unique_ptr<DBEntry> AllocEntry(const DBRequestKey *k) const;
      97             : 
      98           0 :     virtual size_t Hash(const DBEntry *entry) const {return 0;}
      99           0 :     virtual size_t Hash(const DBRequestKey *key) const {return 0;}
     100             : 
     101             :     virtual DBEntry *OperDBAdd(const DBRequest *req);
     102             :     virtual bool OperDBOnChange(DBEntry *entry, const DBRequest *req);
     103             :     virtual bool OperDBDelete(DBEntry *entry, const DBRequest *req);
     104             :     virtual bool OperDBResync(DBEntry *entry, const DBRequest *req);
     105             : 
     106             :     virtual bool IFNodeToReq(IFMapNode *node, DBRequest &req,
     107             :                              const boost::uuids::uuid &u);
     108             :     virtual bool IFNodeToUuid(IFMapNode *node, boost::uuids::uuid &u);
     109             :     virtual bool ProcessConfig(IFMapNode *node, DBRequest &req,
     110             :                                const boost::uuids::uuid &u);
     111             :     void ReleaseIndex(QosQueue *qos_queue);
     112             :     virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args,
     113             :                                             const std::string &context);
     114             : private:
     115             :     IndexVector<QosQueue *> index_table_;
     116             :     DISALLOW_COPY_AND_ASSIGN(QosQueueTable);
     117             : };
     118             : #endif

Generated by: LCOV version 1.14