//===- HashEntryFactory.h --------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef MCLD_HASH_ENTRY_FACTORY_H
#define MCLD_HASH_ENTRY_FACTORY_H
namespace mcld {
/** \class HashEntryFactory
* \brief HashEntryFactoy is a factory wrapper for those entries who have
* factory methods.
*/
template<typename HashEntryTy>
class HashEntryFactory
{
public:
typedef HashEntryTy entry_type;
typedef typename HashEntryTy::key_type key_type;
public:
entry_type* produce(const key_type& pKey)
{ return HashEntryTy::Create(pKey); }
void destroy(entry_type*& pEntry)
{ HashEntryTy::Destroy(pEntry); }
};
} // namespace of mcld
#endif