HashEntry.tcc revision d8a752331fe7a30ce41835f139aa8a4c675ad07a
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}
21
22template <typename KeyType, typename ValueType, typename KeyCompare>
23bool HashEntry<KeyType, ValueType, KeyCompare>::compare(const KeyType& pKey)
24{
25  static KeyCompare comparator;
26  return comparator(m_Key, pKey);
27}
28
29//===--------------------------------------------------------------------===//
30// template implementation of EntryFactory
31template <typename HashEntryTy>
32EntryFactory<HashEntryTy>::EntryFactory()
33{
34}
35
36template <typename HashEntryTy>
37EntryFactory<HashEntryTy>::~EntryFactory()
38{
39}
40
41template <typename HashEntryTy>
42void EntryFactory<HashEntryTy>::destroy(HashEntryTy* pEntry)
43{
44  delete pEntry;
45}
46
47template <typename HashEntryTy>
48HashEntryTy*
49EntryFactory<HashEntryTy>::produce(const typename EntryFactory<HashEntryTy>::key_type& pKey)
50{
51  return new HashEntryTy(pKey);
52}
53