diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:05:43 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:05:43 -0800 |
commit | f013e1afd1e68af5e3b868c26a653bbfb39538f8 (patch) | |
tree | 7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf /include/utils/MemoryHeapPmem.h | |
parent | e70cfafe580c6f2994c4827cd8a534aabf3eb05c (diff) | |
download | frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.zip frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.tar.gz frameworks_base-f013e1afd1e68af5e3b868c26a653bbfb39538f8.tar.bz2 |
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'include/utils/MemoryHeapPmem.h')
-rw-r--r-- | include/utils/MemoryHeapPmem.h | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/include/utils/MemoryHeapPmem.h b/include/utils/MemoryHeapPmem.h index b694b20..60335ad 100644 --- a/include/utils/MemoryHeapPmem.h +++ b/include/utils/MemoryHeapPmem.h @@ -23,7 +23,7 @@ #include <utils/MemoryDealer.h> #include <utils/MemoryHeapBase.h> #include <utils/IMemory.h> -#include <utils/Vector.h> +#include <utils/SortedVector.h> namespace android { @@ -31,11 +31,21 @@ class MemoryHeapBase; // --------------------------------------------------------------------------- -class SubRegionMemory; - class MemoryHeapPmem : public HeapInterface, public MemoryHeapBase { public: + class MemoryPmem : public BnMemory { + public: + MemoryPmem(const sp<MemoryHeapPmem>& heap); + ~MemoryPmem(); + protected: + const sp<MemoryHeapPmem>& getHeap() const { return mClientHeap; } + private: + friend class MemoryHeapPmem; + virtual void revoke() = 0; + sp<MemoryHeapPmem> mClientHeap; + }; + MemoryHeapPmem(const sp<MemoryHeapBase>& pmemHeap, uint32_t flags = IMemoryHeap::MAP_ONCE); ~MemoryHeapPmem(); @@ -51,11 +61,16 @@ public: /* revoke all allocations made by this heap */ virtual void revoke(); - + +private: + /* use this to create your own IMemory for mapMemory */ + virtual sp<MemoryPmem> createMemory(size_t offset, size_t size); + void remove(const wp<MemoryPmem>& memory); + private: sp<MemoryHeapBase> mParentHeap; mutable Mutex mLock; - Vector< wp<SubRegionMemory> > mAllocations; + SortedVector< wp<MemoryPmem> > mAllocations; }; |