Поделиться через


Метод 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

См. также:

Интерфейс IHttpCacheSpecificData