1/*
2 * Copyright 2008, Axel D��rfler. All Rights Reserved.
3 * Copyright 2007, Hugo Santos. All Rights Reserved.
4 *
5 * Distributed under the terms of the MIT License.
6 */
7#ifndef SMALL_OBJECT_CACHE_H
8#define SMALL_OBJECT_CACHE_H
9
10
11#include "ObjectCache.h"
12
13
14struct SmallObjectCache : ObjectCache {
15	static	SmallObjectCache*	Create(const char* name, size_t object_size,
16									size_t alignment, size_t maximum,
17									size_t magazineCapacity,
18									size_t maxMagazineCount,
19									uint32 flags, void* cookie,
20									object_cache_constructor constructor,
21									object_cache_destructor destructor,
22									object_cache_reclaimer reclaimer);
23	virtual	void				Delete();
24
25	virtual	slab*				CreateSlab(uint32 flags);
26	virtual	void				ReturnSlab(slab* slab, uint32 flags);
27	virtual slab*				ObjectSlab(void* object) const;
28};
29
30
31#endif	// SMALL_OBJECT_CACHE_H
32