|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name : headerhash.cxx
Abstract: Header hash goo Author: Bilal Alam (balam) 20-Feb-2000
Environment: Win32 - User Mode
Project: ULW3.DLL --*/
#include "precomp.hxx"
METHOD_HASH *METHOD_HASH::sm_pMethodHash;
HEADER_RECORD METHOD_HASH::sm_rgMethods[] = { { HttpVerbOPTIONS, HEADER("OPTIONS") }, { HttpVerbGET, HEADER("GET") }, { HttpVerbHEAD, HEADER("HEAD") }, { HttpVerbPOST, HEADER("POST") }, { HttpVerbPUT, HEADER("PUT") }, { HttpVerbDELETE, HEADER("DELETE") }, { HttpVerbTRACE, HEADER("TRACE") }, { HttpVerbCONNECT, HEADER("CONNECT") }, { HttpVerbTRACK, HEADER("TRACK") }, { HttpVerbMOVE, HEADER("MOVE") }, { HttpVerbCOPY, HEADER("COPY") }, { HttpVerbPROPFIND, HEADER("PROPFIND") }, { HttpVerbPROPPATCH, HEADER("PROPPATCH") }, { HttpVerbMKCOL, HEADER("MKCOL") }, { HttpVerbLOCK, HEADER("LOCK") }, { HttpVerbUNLOCK, HEADER("UNLOCK") }, { HttpVerbSEARCH, HEADER("SEARCH") }, { HttpVerbUnknown, NULL } };
//static
HRESULT METHOD_HASH::Initialize( VOID ) /*++
Routine Description:
Initialize global header hash table
Arguments:
None
Return Value:
HRESULT
--*/ { HEADER_RECORD * pRecord; LK_RETCODE lkrc = LK_SUCCESS; DWORD dwNumRecords; //
// Add header index/name to hash table
//
sm_pMethodHash = new METHOD_HASH(); if ( sm_pMethodHash == NULL ) { return HRESULT_FROM_WIN32( ERROR_NOT_ENOUGH_MEMORY ); } //
// Add every string->routine mapping
//
dwNumRecords = sizeof( sm_rgMethods ) / sizeof( HEADER_RECORD ) - 1; for ( DWORD i = 0; i < dwNumRecords; i++ ) { pRecord = &(sm_rgMethods[ i ]); lkrc = sm_pMethodHash->InsertRecord( pRecord ); if ( lkrc != LK_SUCCESS ) { break; } } //
// If any insert failed, then fail initialization
//
if ( lkrc != LK_SUCCESS ) { delete sm_pMethodHash; sm_pMethodHash = NULL; return HRESULT_FROM_WIN32( lkrc ); // BUGBUG
} else { return NO_ERROR; } }
//static
VOID METHOD_HASH::Terminate( VOID ) /*++
Routine Description:
Global cleanup of header hash table
Arguments:
None
Return Value:
None
--*/ { if ( sm_pMethodHash != NULL ) { delete sm_pMethodHash; sm_pMethodHash = NULL; } }
|