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
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_;
/// user-context.
///
/// Must be called from a thread-safe context.
- void recountClassLeases4();
+ void recountClassLeases4() override;
/// @brief Recount the leases per class for V6 leases.
///
/// 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
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
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.
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
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:
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.)