193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao/* 293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * Copyright 2012, The Android Open Source Project 393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * 493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * Licensed under the Apache License, Version 2.0 (the "License"); 593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * you may not use this file except in compliance with the License. 693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * You may obtain a copy of the License at 793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * 893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * http://www.apache.org/licenses/LICENSE-2.0 993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * 1093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * Unless required by applicable law or agreed to in writing, software 1193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * distributed under the License is distributed on an "AS IS" BASIS, 1293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * See the License for the specific language governing permissions and 1493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * limitations under the License. 1593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao */ 1693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 1793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#ifndef BCC_SUPPORT_MEMORY_FACTORY_H 1893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#define BCC_SUPPORT_MEMORY_FACTORY_H 1993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#include <mcld/Support/FileHandle.h> 2193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#include <mcld/Support/MemoryAreaFactory.h> 2293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaonamespace mcld { 2493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass MemoryArea; 2593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao} // end namespace mcld 2693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaonamespace bcc { 2893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass MemoryFactory : public mcld::MemoryAreaFactory { 3093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaopublic: 3193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao MemoryFactory() : mcld::MemoryAreaFactory(32) { } 3293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 3393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao ~MemoryFactory() { } 3493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 3593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao using mcld::MemoryAreaFactory::produce; 3693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 3793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao mcld::MemoryArea* produce(void *pMemBuffer, size_t pSize) 3893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao { return mcld::MemoryAreaFactory::create(pMemBuffer, pSize); } 3993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 4093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao mcld::MemoryArea* produce(int pFD) 4193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao { return mcld::MemoryAreaFactory::create(pFD, mcld::FileHandle::Unknown); } 4293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao}; 4393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 4493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao} // end namespace bcc 4593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 4693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#endif // BCC_SUPPORT_MEMORY_FACTORY_H 47