1//===- InputFactory.cpp ---------------------------------------------------===//
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#include "mcld/MC/InputFactory.h"
10#include "mcld/MC/AttributeFactory.h"
11
12using namespace mcld;
13
14//===----------------------------------------------------------------------===//
15// InputFactory
16InputFactory::InputFactory(size_t pNum, AttributeFactory& pAttrFactory)
17  : GCFactory<Input,0>(pNum), m_AttrFactory(pAttrFactory) {
18}
19
20InputFactory::~InputFactory()
21{
22}
23
24Input* InputFactory::produce(llvm::StringRef pName,
25                             const sys::fs::Path& pPath,
26                             unsigned int pType,
27                             off_t pFileOffset)
28{
29  mcld::Input* result = Alloc::allocate();
30  new (result) mcld::Input(pName, pPath, m_AttrFactory.last(), pType, pFileOffset);
31  return result;
32}
33
34