Метод IHttpCacheSpecificData::D ecrementTTL
Уменьшает значение параметра Срок жизни (TTL) кэшированных данных.
Синтаксис
virtual VOID DecrementTTL(
OUT BOOL* pfTTLExpired
) = 0;
Параметры
pfTTLExpired
[OUT] true
, чтобы указать, что число TTL достигло 0; в противном случае — false
.
Потокобезопасность
Классы, реализующие интерфейс IHttpCacheSpecificData , являются потокобезопасны для DecrementTTL
методов и ResetTTL .
Комментарии
Параметр pfTTLExpired
не должен иметь значение NULL; в DecrementTTL
противном случае метод вызовет нарушение доступа в некоторых реализациях.
Параметр TTL указывает, когда кэшированные данные больше не являются допустимыми и, следовательно, когда эти данные должны быть перезагружены. Большинство IHttpCacheSpecificData
реализаций устанавливают положительное значение для начального внутреннего счетчика, а затем позволяют уменьшить это число с помощью последовательных вызовов DecrementTTL
метода . Если значение TTL становится 0, данные следует перезагрузить.
Поведение зависит от DecrementTTL
реализации. В качестве руководства следует использовать следующие сведения, но они могут быть неправильными во всех сценариях:
Классы, реализующие
IHttpCacheSpecificData
интерфейсы или IHttpTokenEntry , инициализируют внутреннее число до 2 при построении и уменьшает число на 1 при каждом вызовеDecrementTTL
.Классы, реализующие интерфейс IHttpFileInfo , различаются. Некоторые классы реализуют схему, определенную выше, в то время как другие выполняют пустые операции с методами
ResetTTL
иDecrementTTL
.
Примечания для разработчиков
Реализации DecrementTTL
методов и ResetTTL
должны быть потокобезопасны для IHttpCacheSpecificData
указателя.
Примечания для абонентов
Большинство вызывающих может игнорировать DecrementTTL
метод , так как этот метод предназначен для внутреннего использования.
Пример
В следующем примере кода демонстрируется класс с именем MySpecificData
, который реализует методы IHttpCacheSpecificData
.
class MySpecificData : public IHttpCacheSpecificData
{
public:
MySpecificData()
{
m_ttl = 2;
}
virtual ~MySpecificData()
{
m_ttl = 0;
}
virtual VOID ResetTTL(VOID)
{
m_ttl = 2;
}
virtual VOID DecrementTTL(BOOL* pfTTLExpired)
{
*pfTTLExpired = (InterlockedDecrement(&m_ttl) == 0);
}
private:
LONG m_ttl;
};
Требования
Тип | Описание |
---|---|
клиент | — IIS 7.0 в Windows Vista — IIS 7.5 в Windows 7 — IIS 8.0 в Windows 8 — IIS 10.0 в Windows 10 |
Сервер | — IIS 7.0 в Windows Server 2008 — IIS 7.5 в Windows Server 2008 R2 — IIS 8.0 в Windows Server 2012 — IIS 8.5 в Windows Server 2012 R2 — IIS 10.0 в Windows Server 2016 |
Продукт | — IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - IIS Express 7.5, IIS Express 8.0, IIS Express 10.0 |
Заголовок | Httpserv.h |