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