aboutsummaryrefslogtreecommitdiff
path: root/src/tests/cache.cpp
blob: 55ec5be1e31c39706a380324f1587ac74f3afeeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>

#include "bu/cache.h"

class Bob
{
public:
	Bob()
	{
		TRACE();
	}

	virtual ~Bob()
	{
		TRACE();
	}

	void setInt( int i )
	{
		TRACE();
		iInt = i;
	}

	int getInt()
	{
		return iInt;
	}

	long getCacheId() const
	{
		TRACE();
		return 0;
	}

	int iInt;
};

class BobHandler : public Bu::CacheHandler<Bob>
{
public:
	BobHandler() :
		cLastId( 0 )
	{
	}

	~BobHandler()
	{
	}

	virtual Bu::CPtr<Bob> load()
	{
	}

	virtual void unload( Bu::CPtr<Bob> pObj )
	{
	}

	virtual Bu::CPtr<Bob> create()
	{
	}

	virtual Bu::CPtr<Bob> create( Bob &rSrc )
	{
	}

	virtual void destroy( Bu::CPtr<Bob> pObj )
	{
	}

private:
	Bu::Cache<Bob>::cid_t cLastId;
};

int main()
{
	typedef Bu::Cache<Bob> BobCache;
	typedef Bu::CPtr<Bob> BobPtr;

	BobCache bobCache;

	BobPtr pB1 = bobCache.insert( new Bob() );
	(*pB1).setInt( 44 );
	printf("RefCnt = %d\n", bobCache.getRefCnt( 0 ) );

	BobPtr pB2 = bobCache.get( 0 );
	printf("RefCnt = %d\n", bobCache.getRefCnt( 0 ) );
	printf("Int = %d\n", pB2->getInt() );
}