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