//===- 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*,
                    StringCompare<llvm::StringRef> > HashEntryType;
} // anonymous namespace

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

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

#endif