mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-02 23:15:20 +00:00
[#2448] make class counter methods virtual in LeaseMgr
This commit is contained in:
@@ -792,6 +792,8 @@ public:
|
||||
return (io_service_);
|
||||
}
|
||||
|
||||
// -- The following are memfile only, but defined in the base LeaseMgr for convenience. --
|
||||
|
||||
/// @brief Returns the class lease count for a given class and lease type.
|
||||
///
|
||||
/// @param client_class client class for which the count is desired
|
||||
@@ -802,6 +804,15 @@ public:
|
||||
virtual size_t getClassLeaseCount(const ClientClass& client_class,
|
||||
const Lease::Type& ltype = Lease::TYPE_V4) const = 0;
|
||||
|
||||
/// @brief Recount the leases per class for V4 leases.
|
||||
virtual void recountClassLeases4() = 0;
|
||||
|
||||
/// @brief Recount the leases per class for V6 leases.
|
||||
virtual void recountClassLeases6() = 0;
|
||||
|
||||
/// @brief Clears the class-lease count map.
|
||||
virtual void clearClassLeaseCounts() = 0;
|
||||
|
||||
private:
|
||||
/// The IOService object, used for all ASIO operations.
|
||||
static isc::asiolink::IOServicePtr io_service_;
|
||||
|
@@ -1256,7 +1256,7 @@ public:
|
||||
/// user-context.
|
||||
///
|
||||
/// Must be called from a thread-safe context.
|
||||
void recountClassLeases4();
|
||||
void recountClassLeases4() override;
|
||||
|
||||
/// @brief Recount the leases per class for V6 leases.
|
||||
///
|
||||
@@ -1265,12 +1265,12 @@ public:
|
||||
/// user-context.
|
||||
///
|
||||
/// Must be called from a thread-safe context.
|
||||
void recountClassLeases6();
|
||||
void recountClassLeases6() override;
|
||||
|
||||
/// @brief Clears the class-lease count map.
|
||||
///
|
||||
/// Must be called from a thread-safe context.
|
||||
void clearClassLeaseCounts();
|
||||
void clearClassLeaseCounts() override;
|
||||
};
|
||||
|
||||
} // namespace dhcp
|
||||
|
@@ -3195,6 +3195,21 @@ MySqlLeaseMgr::getClassLeaseCount(const ClientClass& client_class,
|
||||
return count;
|
||||
}
|
||||
|
||||
void
|
||||
MySqlLeaseMgr::recountClassLeases4() {
|
||||
isc_throw(NotImplemented, "MySqlLeaseMgr::recountClassLeases4() not implemented");
|
||||
}
|
||||
|
||||
void
|
||||
MySqlLeaseMgr::recountClassLeases6() {
|
||||
isc_throw(NotImplemented, "MySqlLeaseMgr::recountClassLeases6() not implemented");
|
||||
}
|
||||
|
||||
void
|
||||
MySqlLeaseMgr::clearClassLeaseCounts() {
|
||||
isc_throw(NotImplemented, "MySqlLeaseMgr::clearClassLeaseCounts() not implemented");
|
||||
}
|
||||
|
||||
LeaseStatsQueryPtr
|
||||
MySqlLeaseMgr::startLeaseStatsQuery4() {
|
||||
// Get a context
|
||||
|
@@ -988,6 +988,15 @@ private:
|
||||
virtual size_t getClassLeaseCount(const ClientClass& client_class,
|
||||
const Lease::Type& ltype = Lease::TYPE_V4) const override;
|
||||
|
||||
/// @brief Recount the leases per class for V4 leases.
|
||||
void recountClassLeases4() override;
|
||||
|
||||
/// @brief Recount the leases per class for V6 leases.
|
||||
void recountClassLeases6() override;
|
||||
|
||||
/// @brief Clears the class-lease count map.
|
||||
void clearClassLeaseCounts() override;
|
||||
|
||||
/// @brief Check Error and Throw Exception
|
||||
///
|
||||
/// This method invokes @ref MySqlConnection::checkError.
|
||||
|
@@ -2398,6 +2398,21 @@ PgSqlLeaseMgr::getClassLeaseCount(const ClientClass& client_class,
|
||||
return count;
|
||||
}
|
||||
|
||||
void
|
||||
PgSqlLeaseMgr::recountClassLeases4() {
|
||||
isc_throw(NotImplemented, "PgSqlLeaseMgr::recountClassLeases4() not implemented");
|
||||
}
|
||||
|
||||
void
|
||||
PgSqlLeaseMgr::recountClassLeases6() {
|
||||
isc_throw(NotImplemented, "PgSqlLeaseMgr::recountClassLeases6() not implemented");
|
||||
}
|
||||
|
||||
void
|
||||
PgSqlLeaseMgr::clearClassLeaseCounts() {
|
||||
isc_throw(NotImplemented, "PgSqlLeaseMgr::clearClassLeaseCounts() not implemented");
|
||||
}
|
||||
|
||||
LeaseStatsQueryPtr
|
||||
PgSqlLeaseMgr::startLeaseStatsQuery4() {
|
||||
// Get a context
|
||||
|
@@ -962,6 +962,15 @@ private:
|
||||
virtual size_t getClassLeaseCount(const ClientClass& client_class,
|
||||
const Lease::Type& ltype = Lease::TYPE_V4) const override;
|
||||
|
||||
/// @brief Recount the leases per class for V4 leases.
|
||||
void recountClassLeases4() override;
|
||||
|
||||
/// @brief Recount the leases per class for V6 leases.
|
||||
void recountClassLeases6() override;
|
||||
|
||||
/// @brief Clears the class-lease count map.
|
||||
void clearClassLeaseCounts() override;
|
||||
|
||||
/// @brief Context RAII Allocator.
|
||||
class PgSqlLeaseContextAlloc {
|
||||
public:
|
||||
|
@@ -379,6 +379,21 @@ public:
|
||||
isc_throw(NotImplemented, "ConcreteLeaseMgr::getClassLeaseCount() not implemented");
|
||||
}
|
||||
|
||||
/// @brief Pretends to recount the leases per class for V4 leases.
|
||||
void recountClassLeases4() override {
|
||||
isc_throw(NotImplemented, "ConcreteLeaseMgr::recountClassLeases4() not implemented");
|
||||
}
|
||||
|
||||
/// @brief Pretends to recount the leases per class for V6 leases.
|
||||
void recountClassLeases6() override {
|
||||
isc_throw(NotImplemented, "ConcreteLeaseMgr::recountClassLeases6() not implemented");
|
||||
}
|
||||
|
||||
/// @brief Pretends to clear the class-lease count map.
|
||||
void clearClassLeaseCounts() override {
|
||||
isc_throw(NotImplemented, "ConcreteLeaseMgr::clearClassLeaseCounts() not implemented");
|
||||
}
|
||||
|
||||
/// @brief Returns backend type.
|
||||
///
|
||||
/// Returns the type of the backend (e.g. "mysql", "memfile" etc.)
|
||||
|
Reference in New Issue
Block a user