Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef _CHILDCONTEXT_HXX_
#define _CHILDCONTEXT_HXX_
class W3_CHILD_CONTEXT : public W3_CONTEXT { public: W3_CHILD_CONTEXT( W3_MAIN_CONTEXT * pMainContext, W3_CONTEXT * pParentContext, W3_REQUEST * pRequest, BOOL fOwnRequest, W3_USER_CONTEXT * pUserContext, DWORD dwExecFlags ); ~W3_CHILD_CONTEXT();
VOID * operator new( size_t size ) { DBG_ASSERT( size == sizeof( W3_CHILD_CONTEXT ) ); DBG_ASSERT( sm_pachChildContexts != NULL ); return sm_pachChildContexts->Alloc(); } VOID operator delete( VOID * pChildContext ) { DBG_ASSERT( pChildContext != NULL ); DBG_ASSERT( sm_pachChildContexts != NULL ); DBG_REQUIRE( sm_pachChildContexts->Free( pChildContext ) ); } //
// Overridden W3_CONTEXT methods
//
BOOL QueryProviderHandled( VOID ) { return _pMainContext->QueryProviderHandled(); }
ULATQ_CONTEXT QueryUlatqContext( VOID ) { return _pMainContext->QueryUlatqContext(); } W3_REQUEST * QueryRequest( VOID ) { return _pRequest; } W3_RESPONSE * QueryResponse( VOID ) { return _pMainContext->QueryResponse(); }
BOOL QuerySendLocation( VOID ) { return TRUE; }
BOOL QueryResponseSent( VOID ) { return _pMainContext->QueryResponseSent(); }
BOOL QueryNeedFinalDone( VOID ) { return _pMainContext->QueryNeedFinalDone(); }
VOID SetNeedFinalDone( VOID ) { _pMainContext->SetNeedFinalDone(); } W3_USER_CONTEXT * QueryUserContext( VOID ) { if ( _pCustomUserContext != NULL ) { return _pCustomUserContext; } else { return _pMainContext->QueryUserContext(); } }
W3_FILTER_CONTEXT * QueryFilterContext( BOOL fCreateIfNotFound = TRUE ) { return _pMainContext->QueryFilterContext( fCreateIfNotFound ); } URL_CONTEXT * QueryUrlContext( VOID ) { return _pUrlContext; } W3_SITE * QuerySite( VOID ) { return _pMainContext->QuerySite(); }
BOOL QueryDisconnect( VOID ) { return _pMainContext->QueryDisconnect(); } VOID SetDisconnect( BOOL fDisconnect ) { if ( ( _dwExecFlags & W3_FLAG_NO_HEADERS ) == 0 ) { _pMainContext->SetDisconnect( fDisconnect ); } } BOOL QueryIsUlCacheable( VOID ) { //
// Child requests are never cached in UL
//
return FALSE; } VOID DisableUlCache( VOID ) { }
VOID SetDoneWithCompression( VOID ) { _pMainContext->SetDoneWithCompression(); }
BOOL QueryDoneWithCompression( VOID ) { return _pMainContext->QueryDoneWithCompression(); } VOID SetCompressionContext( IN COMPRESSION_CONTEXT * pCompressionContext ) { _pMainContext->SetCompressionContext(pCompressionContext); }
COMPRESSION_CONTEXT * QueryCompressionContext( VOID ) { return _pMainContext->QueryCompressionContext(); } HTTP_LOG_FIELDS_DATA * QueryUlLogData( VOID ) { return _pMainContext->QueryUlLogData(); }
VOID SetLastIOPending( LAST_IO_PENDING ioPending ) { _pMainContext->SetLastIOPending(ioPending); }
VOID IncrementBytesRecvd( DWORD dwRead ) { _pMainContext->IncrementBytesRecvd(dwRead); }
VOID IncrementBytesSent( DWORD dwSent ) { _pMainContext->IncrementBytesSent(dwSent); }
W3_CONTEXT * QueryParentContext( VOID ) { return _pParentContext; }
W3_MAIN_CONTEXT * QueryMainContext( VOID ) { return _pMainContext; } HRESULT RetrieveUrlContext( BOOL * pfFinished );
HRESULT ReceiveEntity( BOOL fAsync, VOID * pBuffer, DWORD cbBuffer, DWORD * pBytesReceived ) { return _pMainContext->ReceiveEntity( fAsync, pBuffer, cbBuffer, pBytesReceived ); }
BOOL NotifyFilters( DWORD dwNotification, VOID * pvFilterInfo, BOOL * pfFinished ) { return _pMainContext->NotifyFilters( dwNotification, pvFilterInfo, pfFinished ); }
BOOL IsNotificationNeeded( DWORD dwNotification ) { return _pMainContext->IsNotificationNeeded( dwNotification ); }
HRESULT SendResponse( DWORD dwFlags ) { return _pMainContext->SendResponse( dwFlags ); } HRESULT SendEntity( DWORD dwFlags ) { return _pMainContext->SendEntity( dwFlags ); } static HRESULT Initialize( VOID ); static VOID Terminate( VOID );
private: W3_MAIN_CONTEXT * _pMainContext; W3_CONTEXT * _pParentContext; W3_REQUEST * _pRequest; BOOL _fOwnRequest; URL_CONTEXT * _pUrlContext; W3_USER_CONTEXT * _pCustomUserContext;
//
// Lookaside for main contexts
//
static ALLOC_CACHE_HANDLER * sm_pachChildContexts; };
#endif
|