00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _RESOURCEHANDLE_
00019 #define _RESOURCEHANDLE_
00020
00021 #include <boost/shared_ptr.hpp>
00022
00023 #include "resource/Resource.h"
00024
00025 class ResourceCache;
00026
00027 class ResourceHandle
00028 {
00029 friend class ResourceCache;
00030 private:
00031 const void* m_pBuffer;
00032 const unsigned int m_nBufferSize;
00033 const Resource m_resource;
00034 protected:
00035 ResourceCache* const m_pResourceCache;
00036 public:
00037 ResourceHandle(const void* pBuffer, const unsigned int nBufferSize, const Resource& resource, ResourceCache* const pResourceCache)
00038 :m_pBuffer(pBuffer), m_nBufferSize(nBufferSize), m_resource(resource), m_pResourceCache(pResourceCache)
00039 {
00040 }
00041
00042 virtual ~ResourceHandle() { }
00043
00044 const void* GetDataBuffer() const { return m_pBuffer; }
00045 const unsigned int GetDataBufferSize() const { return m_nBufferSize; }
00046 const Resource& GetResource() const { return m_resource; }
00047 };
00048
00049 typedef boost::shared_ptr<ResourceHandle> ResourceHandlePtr;
00050
00051 #endif