Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Decrementa il conteggio dei riferimenti interni per i dati memorizzati nella cache.
Sintassi
virtual VOID DereferenceCacheData(
VOID
) = 0;
Parametri
Questo metodo non accetta parametri.
Thread safety
Le classi che implementano l'interfaccia IHttpCacheSpecificData sono thread safe per i DereferenceCacheData metodi ReferenceCacheData .
Commenti
Le classi che implementano l'interfaccia usano il IHttpCacheSpecificData conteggio dei riferimenti che è thread safe per la gestione della memoria. Quando viene costruito un puntatore, il conteggio dei riferimenti interni (variabile IHttpCacheSpecificDataprivate membro) è impostato su 1. Quando viene chiamato il metodo, questo ReferenceCacheData conteggio di riferimenti viene incrementato da 1. Quando viene chiamato il metodo, lo DereferenceCacheData stesso numero di riferimenti viene decretato da 1. Solo quando il conteggio dei riferimenti passa a 0 è il IHttpCacheSpecificData puntatore rimosso dall'heap. Questo schema garantisce che il puntatore non verrà eliminato fino all'ultimo IHttpCacheSpecificData client di tale puntatore chiama DereferenceCacheData.
Note per gli implementatori
Le ReferenceCacheData implementazioni del metodo e DereferenceCacheData devono essere thread safe per un'interfaccia IHttpCacheSpecificData . Gli implementatori devono fornire protected o private distruttori chiamati internamente solo quando il conteggio dei riferimenti passa a 0.
Note per i chiamanti
I client non devono mai tentare di eseguire il cast di un'interfaccia IHttpCacheSpecificData in una classe più specifica e quindi chiamare delete direttamente. I client devono invece chiamare il ReferenceCacheData metodo esattamente una volta quando viene recuperato un puntatore a un'interfaccia IHttpCacheSpecificData e quindi chiamare il metodo quando il DereferenceCacheDataIHttpCacheSpecificData puntatore non sarà più accessibile. È consigliabile chiamare i ReferenceCacheData metodi e DereferenceCacheData il più presto possibile, rispettivamente, per garantire che un IHttpCacheSpecificData puntatore sia valido nell'heap quando viene eseguito l'accesso ed eliminato quando non è più necessario.
Esempio
Nell'esempio di codice seguente viene illustrata una classe denominata MySpecificData che implementa i IHttpCacheSpecificData metodi.
// Create a class that implements the IHttpCacheSpecificData interface.
class MySpecificData : public IHttpCacheSpecificData
{
public:
// Create a public constructor.
// Set the internal reference count to 1.
MySpecificData ()
{
m_cRefs = 1;
}
// Increment the internal reference count.
virtual VOID ReferenceCacheData(VOID)
{
InterlockedIncrement(&m_cRefs);
}
// Decrement the internal reference count.
virtual VOID DereferenceCacheData(VOID)
{
// Decrement the reference count and delete this
// if the count is 0.
if (0 == InterlockedDecrement(&m_cRefs))
{
delete this;
}
}
// To do: implement custom MySpecificData implementation.
private:
// Create a private destructor called from DereferenceCacheData.
virtual ~MySpecificData ()
{
}
// Create a private reference count member.
LONG m_cRefs;
}
Requisiti
| Tipo | Descrizione |
|---|---|
| Client | - IIS 7.0 in Windows Vista - IIS 7.5 in Windows 7 - IIS 8.0 in Windows 8 - IIS 10.0 in Windows 10 |
| Server | - IIS 7.0 in Windows Server 2008 - IIS 7.5 in Windows Server 2008 R2 - IIS 8.0 in Windows Server 2012 - IIS 8.5 in Windows Server 2012 R2 - IIS 10.0 in Windows Server 2016 |
| Prodotto | - 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 |
| Intestazione | Httpserv.h |
Vedere anche
Interfaccia IHttpCacheSpecificData
Interfaccia IHttpFileInfo
Interfaccia IHttpTokenEntry