1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- MemoryFactory.h ----------------------------------------------------===// 2affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 3affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// The MCLinker Project 4affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 5affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// This file is distributed under the University of Illinois Open Source 6affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// License. See LICENSE.TXT for details. 7affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 8affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===// 9affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 10affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifndef ALONE_SUPPORT_MEMORY_FACTORY_H 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#define ALONE_SUPPORT_MEMORY_FACTORY_H 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/Support/FileHandle.h> 14affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/Support/MemoryAreaFactory.h> 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 16affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace mcld { 17affc150dc44fab1911775a49636d0ce85333b634Zonr Changclass MemoryArea; 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // end namespace mcld 19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 20affc150dc44fab1911775a49636d0ce85333b634Zonr Changnamespace alone { 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 22cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaoclass MemoryFactory : public mcld::MemoryAreaFactory { 23affc150dc44fab1911775a49636d0ce85333b634Zonr Changpublic: 24cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao MemoryFactory() : mcld::MemoryAreaFactory(32) { } 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ~MemoryFactory() { } 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang using mcld::MemoryAreaFactory::produce; 29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang mcld::MemoryArea* produce(void *pMemBuffer, size_t pSize) 31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang { return mcld::MemoryAreaFactory::create(pMemBuffer, pSize); } 32affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 33affc150dc44fab1911775a49636d0ce85333b634Zonr Chang mcld::MemoryArea* produce(int pFD) 34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang { return mcld::MemoryAreaFactory::create(pFD, mcld::FileHandle::Unknown); } 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang}; 36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} // end namespace alone 38affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#endif // ALONE_SUPPORT_MEMORY_FACTORY_H 40