Home | History | Annotate | Download | only in buffers
      1 /*
      2 // Copyright(c)2014 IntelCorporation
      3 //
      4 // LicensedundertheApacheLicense,Version2.0(the"License");
      5 // youmaynotusethisfileexceptincompliancewiththeLicense.
      6 // YoumayobtainacopyoftheLicenseat
      7 //
      8 // http://www.apache.org/licenses/LICENSE-2.0
      9 //
     10 // Unlessrequiredbyapplicablelaworagreedtoinwriting,software
     11 // distributedundertheLicenseisdistributedonan"ASIS"BASIS,
     12 // WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
     13 // SeetheLicenseforthespecificlanguagegoverningpermissionsand
     14 // limitationsundertheLicense.
     15 */
     16 #ifndef BUFFERCACHE_H_
     17 #define BUFFERCACHE_H_
     18 
     19 #include <utils/KeyedVector.h>
     20 #include <BufferMapper.h>
     21 
     22 namespace android {
     23 namespace intel {
     24 
     25 // Generic buffer cache
     26 class BufferCache {
     27 public:
     28     BufferCache(int size);
     29     virtual ~BufferCache();
     30     // add a new mapper into buffer cache
     31     virtual bool addMapper(uint64_t handle, BufferMapper* mapper);
     32     //remove mapper
     33     virtual bool removeMapper(BufferMapper* mapper);
     34     // get a buffer mapper
     35     virtual BufferMapper* getMapper(uint64_t handle);
     36     // get cache size
     37     virtual size_t getCacheSize() const;
     38     // get mapper with an index
     39     virtual BufferMapper* getMapper(size_t index);
     40 private:
     41     KeyedVector<uint64_t, BufferMapper*> mBufferPool;
     42 };
     43 
     44 }
     45 }
     46 
     47 
     48 #endif /* BUFFERCACHE_H_ */
     49