重置缓存数据的生存时间 (TTL) 设置。
语法
virtual VOID ResetTTL(
VOID
) = 0;
参数
此方法不采用参数。
线程安全性
实现 IHttpCacheSpecificData 接口的类对于 DecrementTTL 和 ResetTTL
方法是线程安全的。
备注
TTL 用于确定缓存数据何时不再有效,因此何时应重新加载该数据。 大多数 IHttpCacheSpecificData
实现将初始内部计数设置为正值,然后允许通过连续调用 DecrementTTL
方法减少该计数。 如果 TTL 值变为 0,则应重新加载数据。
方法的行为 ResetTTL
特定于实现。 应将以下信息用作指南,但并非所有方案都正确:
实现
IHttpCacheSpecificData
或 IHttpTokenEntry 接口的类在构造时将内部计数初始化为 2,并在每次调用DecrementTTL
时将内部计数递减 1。实现 IHttpFileInfo 接口的类是不同的。 某些类实现上面定义的方案,而其他类则同时对
ResetTTL
和DecrementTTL
执行空操作。
实现者须知
DecrementTTL
和 ResetTTL
方法实现对于指针来说必须是线程安全的IHttpCacheSpecificData
。
对调用者的说明
大多数调用方可能会忽略 方法, ResetTTL
因为此方法旨在内部使用。
示例
下面的代码示例演示了一个名为 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;
};
要求
类型 | 说明 |
---|---|
客户端 | - Windows Vista 上的 IIS 7.0 - Windows 7 上的 IIS 7.5 - Windows 8 上的 IIS 8.0 - Windows 10 上的 IIS 10.0 |
服务器 | - Windows Server 2008 上的 IIS 7.0 - Windows Server 2008 R2 上的 IIS 7.5 - Windows Server 2012 上的 IIS 8.0 - Windows Server 2012 R2 上的 IIS 8.5 - Windows Server 2016 上的 IIS 10.0 |
产品 | - 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 |
Header | Httpserv.h |