mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 00:22:29 +00:00
27 lines
720 B
C++
27 lines
720 B
C++
#pragma once
|
|
|
|
namespace DB
|
|
{
|
|
|
|
/** Базовый класс для управления временем жизнью элементов кэша.
|
|
*/
|
|
template <typename TTimestamp, typename TDelay>
|
|
class BaseCellAging
|
|
{
|
|
public:
|
|
using Timestamp = TTimestamp;
|
|
using Delay = TDelay;
|
|
|
|
public:
|
|
virtual ~BaseCellAging() = default;
|
|
/// Обновить timestamp элемента кэша.
|
|
virtual const Timestamp & update() = 0;
|
|
/// Просрочен ли элемент кэша? Срок истечения годности задается в секундах.
|
|
virtual bool expired(const Timestamp & last_timestamp, const Delay & expiration_delay) const = 0;
|
|
|
|
protected:
|
|
Timestamp timestamp = Timestamp();
|
|
};
|
|
|
|
}
|