15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- InputFactory.cpp ---------------------------------------------------===//
25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//                     The MCLinker Project
45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source
65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details.
75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===//
95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/MC/InputFactory.h"
105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/MC/AttributeFactory.h"
115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld;
135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===//
155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// InputFactory
165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInputFactory::InputFactory(size_t pNum, AttributeFactory& pAttrFactory)
175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  : GCFactory<Input,0>(pNum), m_AttrFactory(pAttrFactory) {
185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInputFactory::~InputFactory()
215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInput* InputFactory::produce(llvm::StringRef pName,
255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao                             const sys::fs::Path& pPath,
265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao                             unsigned int pType,
275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao                             off_t pFileOffset)
285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  mcld::Input* result = Alloc::allocate();
305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  new (result) mcld::Input(pName, pPath, m_AttrFactory.last(), pType, pFileOffset);
315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  return result;
325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
34