1//===- HashEntry.tcc ------------------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10//===--------------------------------------------------------------------===//
11// template implementation of HashEntry
12template <typename KeyType, typename ValueType, typename KeyCompare>
13HashEntry<KeyType, ValueType, KeyCompare>::HashEntry(const KeyType& pKey)
14    : m_Key(pKey) {
15}
16
17template <typename KeyType, typename ValueType, typename KeyCompare>
18HashEntry<KeyType, ValueType, KeyCompare>::~HashEntry() {
19}
20
21template <typename KeyType, typename ValueType, typename KeyCompare>
22bool HashEntry<KeyType, ValueType, KeyCompare>::compare(const KeyType& pKey) {
23  static KeyCompare comparator;
24  return comparator(m_Key, pKey);
25}
26
27//===--------------------------------------------------------------------===//
28// template implementation of EntryFactory
29template <typename HashEntryTy>
30EntryFactory<HashEntryTy>::EntryFactory() {
31}
32
33template <typename HashEntryTy>
34EntryFactory<HashEntryTy>::~EntryFactory() {
35}
36
37template <typename HashEntryTy>
38void EntryFactory<HashEntryTy>::destroy(HashEntryTy* pEntry) {
39  delete pEntry;
40}
41
42template <typename HashEntryTy>
43HashEntryTy* EntryFactory<HashEntryTy>::produce(
44    const typename EntryFactory<HashEntryTy>::key_type& pKey) {
45  return new HashEntryTy(pKey);
46}
47