122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===- HashEntryFactory.h --------------------------------------------------===// 222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// 322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// The MCLinker Project 422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// 522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// This file is distributed under the University of Illinois Open Source 622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// License. See LICENSE.TXT for details. 722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// 822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#ifndef MCLD_HASH_ENTRY_FACTORY_H 1022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#define MCLD_HASH_ENTRY_FACTORY_H 1122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 1222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaonamespace mcld { 1322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 1422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao/** \class HashEntryFactory 1522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao * \brief HashEntryFactoy is a factory wrapper for those entries who have 1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao * factory methods. 1722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao */ 1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaotemplate<typename HashEntryTy> 1922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaoclass HashEntryFactory 2022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao{ 2122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaopublic: 2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao typedef HashEntryTy entry_type; 2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao typedef typename HashEntryTy::key_type key_type; 2422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liaopublic: 2622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao entry_type* produce(const key_type& pKey) 2722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao { return HashEntryTy::Create(pKey); } 2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao void destroy(entry_type*& pEntry) 3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao { HashEntryTy::Destroy(pEntry); } 3122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}; 3222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 3322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} // namespace of mcld 3422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 3522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#endif 3622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 37