137b74a387bb3993387029859c2d9d051c41c724eStephen Hines//===- 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//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_ADT_HASHENTRYFACTORY_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define MCLD_ADT_HASHENTRYFACTORY_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 */ 1837b74a387bb3993387029859c2d9d051c41c724eStephen Hinestemplate <typename HashEntryTy> 1937b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass HashEntryFactory { 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 2137b74a387bb3993387029859c2d9d051c41c724eStephen Hines typedef HashEntryTy entry_type; 2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao typedef typename HashEntryTy::key_type key_type; 2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines entry_type* produce(const key_type& pKey) { 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines return HashEntryTy::Create(pKey); 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines void destroy(entry_type*& pEntry) { HashEntryTy::Destroy(pEntry); } 3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao}; 3122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 3322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // MCLD_ADT_HASHENTRYFACTORY_H_ 35