1/*
2 * Copyright 2011, Oliver Tappe <zooey@hirschkaefer.de>
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include <package/hpkg/BlockBufferCache.h>
8
9#include <new>
10
11#include <package/hpkg/BlockBufferCacheImpl.h>
12
13
14namespace BPackageKit {
15
16namespace BHPKG {
17
18
19BBlockBufferCache::BBlockBufferCache(size_t blockSize, uint32 maxCachedBlocks)
20	:
21	fImpl(new (std::nothrow) BlockBufferCacheImpl(blockSize, maxCachedBlocks,
22		this))
23{
24}
25
26
27BBlockBufferCache::~BBlockBufferCache()
28{
29	delete fImpl;
30}
31
32
33status_t
34BBlockBufferCache::Init()
35{
36	if (fImpl == NULL)
37		return B_NO_MEMORY;
38
39	return fImpl->Init();
40}
41
42
43CachedBuffer*
44BBlockBufferCache::GetBuffer(size_t size, CachedBuffer** owner,
45	bool* _newBuffer)
46{
47	if (fImpl == NULL)
48		return NULL;
49
50	return fImpl->GetBuffer(size, owner, _newBuffer);
51}
52
53
54void
55BBlockBufferCache::PutBufferAndCache(CachedBuffer** owner)
56{
57	if (fImpl != NULL)
58		fImpl->PutBufferAndCache(owner);
59}
60
61
62void
63BBlockBufferCache::PutBuffer(CachedBuffer** owner)
64{
65	if (fImpl != NULL)
66		fImpl->PutBuffer(owner);
67}
68
69
70}	// namespace BHPKG
71
72}	// namespace BPackageKit
73