次の方法で共有


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 無視することがあります。これは、このメソッドが内部的に使用されることを目的としているためです。

次のコード例は、 メソッドを実装する というクラス MySpecificDataIHttpCacheSpecificData 示しています。

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

参照

IHttpCacheSpecificData インターフェイス