IHttpCacheSpecificData::D ecrementTTL メソッド
キャッシュされたデータの Time-to-Live (TTL) 設定をデクリメントします。
構文
virtual VOID DecrementTTL(
OUT BOOL* pfTTLExpired
) = 0;
パラメーター
pfTTLExpired
[OUT] true
TTL 数が 0 に達したことを示す場合は 。それ以外の場合は false
。
スレッド セーフ
IHttpCacheSpecificData インターフェイスを実装するクラスは、 メソッドと ResetTTL メソッドのDecrementTTL
スレッド セーフです。
解説
パラメーターを pfTTLExpired
NULL にすることはできません。それ以外の DecrementTTL
場合、メソッドは一部の実装でアクセス違反を引き起こします。
TTL 設定では、キャッシュされたデータが有効でなくなった場合と、そのデータを再読み込みするタイミングを指定します。 ほとんどの IHttpCacheSpecificData
実装では、最初の内部カウントを正の値に設定し、メソッドの連続した呼び出しによってそのカウントを DecrementTTL
減らすことができます。 TTL 値が 0 の場合は、データを再読み込みする必要があります。
の DecrementTTL
動作は実装固有です。 ガイドラインとして次の情報を使用する必要がありますが、すべてのシナリオで正しくない場合があります。
または IHttpTokenEntry インターフェイスを
IHttpCacheSpecificData
実装するクラスは、構築時に内部カウントを 2 に初期化し、 の各呼び出しで 1 ずつカウントするデクリメントをDecrementTTL
行います。IHttpFileInfo インターフェイスを実装するクラスはさまざまです。 上記で定義したスキームを実装するクラスもあれば、 メソッドと
DecrementTTL
メソッドの両方に対して空の操作をResetTTL
実行するクラスもあります。
実装側の注意
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;
};
要件
Type | 説明 |
---|---|
Client | - 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 |