use shared_ptr for device, cache

git-svn-id: https://profuse.googlecode.com/svn/branches/v2@345 aa027e90-d47c-11dd-86d7-074df07e0730
This commit is contained in:
ksherlock
2011-02-22 02:59:33 +00:00
parent 8e259ef1f2
commit 78d35bba08
17 changed files with 80 additions and 36 deletions

View File

@@ -23,16 +23,15 @@ using ProFUSE::Exception;
using ProFUSE::POSIXException;
BlockCache::BlockCache(BlockDevice *device)
BlockCache::BlockCache(BlockDevicePointer device) :
_device(device)
{
_device = device;
_blocks = device->blocks();
_readOnly = device->readOnly();
}
BlockCache::~BlockCache()
{
delete _device;
}
void BlockCache::write(unsigned block, const void *bp)
@@ -50,9 +49,9 @@ void BlockCache::read(unsigned block, void *bp)
}
BlockCache *BlockCache::Create(BlockDevice *device)
BlockCachePointer BlockCache::Create(BlockDevicePointer device)
{
if (!device) return NULL;
if (!device.get()) return BlockCachePointer();
return device->createBlockCache();
}