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 12 template <typename KeyType, typename ValueType, typename KeyCompare> 13 HashEntry<KeyType, ValueType, KeyCompare>::HashEntry(const KeyType& pKey) 14 : m_Key(pKey) { 15 } 16 17 template <typename KeyType, typename ValueType, typename KeyCompare> 18 HashEntry<KeyType, ValueType, KeyCompare>::~HashEntry() { 19 } 20 21 template <typename KeyType, typename ValueType, typename KeyCompare> 22 bool 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 29 template <typename HashEntryTy> 30 EntryFactory<HashEntryTy>::EntryFactory() { 31 } 32 33 template <typename HashEntryTy> 34 EntryFactory<HashEntryTy>::~EntryFactory() { 35 } 36 37 template <typename HashEntryTy> 38 void EntryFactory<HashEntryTy>::destroy(HashEntryTy* pEntry) { 39 delete pEntry; 40 } 41 42 template <typename HashEntryTy> 43 HashEntryTy* EntryFactory<HashEntryTy>::produce( 44 const typename EntryFactory<HashEntryTy>::key_type& pKey) { 45 return new HashEntryTy(pKey); 46 } 47