Leaked source code of windows server 2003
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.

55 lines
2.2 KiB

  1. LKRhash: Larson-Krishnan-Reilly Hash Tables
  2. ===========================================
  3. LKRhash is a fast, thread-safe, scalable, multiprocessor-friendly,
  4. processor cache-friendly hashtable based on P.-A. Larson's linear hash
  5. tables. See lkrhash.h for details.
  6. http://GeorgeRe/work/LKRhash/ is the official MS-internal
  7. website for LKRhash. Please check there occasionally for
  8. updates.
  9. LKRhash can be redistributed to customers in binary format
  10. only. Do not distribute the source outside of Microsoft.
  11. Use VC 6.0 to build lkrhash.dsw. This will build lkrhash.dll,
  12. which contains the implementation of the hashtable, and
  13. hashtest.exe, a test program. To run, use
  14. .\release\hashtest.exe words.ini (or files.ini)
  15. (words.* and files.* can be found in data.zip)
  16. Alternatively, if you're using the NT build environment, adapt
  17. the `dirs' and `sources' files to your needs.
  18. To make LKRhash work with other code, you'll need to
  19. #define USE_DEBUG_CRTS
  20. before #including <irtldbg.h>, which is #included by <lkrhash.h>.
  21. If you don't, you're likely to see a complaint from the compiler
  22. that it can't find <pudebug.h>.
  23. If you're using LKRhash in the same module where you're building
  24. it, you'll need to add the following two lines to your .cpp files
  25. before you include <lkrhash.h>
  26. #define DLL_IMPLEMENTATION
  27. #define IMPLEMENTATION_EXPORT
  28. #include <lkrhash.h>
  29. Namespaces are now turned on by default. All functions declared
  30. in <lkrhash.h> are declared in the `LKRhash' namespace, and all
  31. functions declared in <hashfn.h> are in the `HashFn' namespace.
  32. If you don't want this behavior, you'll need to add the following
  33. two lines to your .cpp files before you include <lkrhash.h>
  34. #define __LKRHASH_NO_NAMESPACE__
  35. #define __HASHFN_NO_NAMESPACE__
  36. #include <lkrhash.h>
  37. Alternatively, you can add the following
  38. using namespace LKRhash;
  39. using namespace HashFn;
  40. LKRhash now comes with an NTSD debugger extension DLL,
  41. lkrdbg. Since debugger extensions can't be used with msdev,
  42. there's no msdev-style .dsp for lkrdbg. You'll have to build it
  43. with the NT build environment (or build a makefile by hand). See
  44. lkrdbg\readme.txt for more details.
  45. /George V. Reilly <[email protected]>