//===- PathCache.h --------------------------------------------------------===//
//
//                     The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef MCLD_PATHCACHE_H
#define MCLD_PATHCACHE_H
#ifdef ENABLE_UNITTEST
#include <gtest.h>
#endif

#include <mcld/ADT/HashEntry.h>
#include <mcld/ADT/HashTable.h>
#include <mcld/ADT/StringHash.h>
#include <mcld/Support/Path.h>

namespace mcld {
namespace sys  {
namespace fs   {

namespace {
  typedef HashEntry<llvm::StringRef,
                    mcld::sys::fs::Path,
                    hash::StringCompare<llvm::StringRef> > HashEntryType;
} // anonymous namespace

typedef HashTable<HashEntryType, hash::StringHash<hash::BKDR>, EntryFactory<HashEntryType> > PathCache;

} // namespace of fs
} // namespace of sys
} // namespace of mcld

#endif