summaryrefslogtreecommitdiff
path: root/src/tests/cache.cpp
blob: f05de57227f8d50f1fb2827f1a461bcc4c7d85eb (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
#include <stdio.h>

#include "bu/cache.h"
#include "bu/cachable.h"

class Bob : public Bu::Cachable
{
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;
};

DECL_CACHABLE( Bob );
DEF_CACHABLE( Bob );

int main()
{
	Bu::Cache<Bob> bobCache;

	Bu::CPtr<Bob> pB1 = bobCache.insert( new Bob() );

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

	Bu::CPtr<Bob> pB2 = bobCache.get( 0 );
	
	printf("RefCnt = %d\n", bobCache.getRefCnt( 0 ) );

	printf("Int = %d\n", pB2->getInt() );

}