1 module example;
2 import hunt.cache;
3 
4 
5 struct Student
6 {
7 	ulong 		ID;
8 	string 		name;
9 	string		address;
10 }
11 
12 class Grade
13 {
14 	int 		gradeLevel;
15 	string  	gradeName;
16 	Student[]	arrStu;
17 }
18 
19 
20 import std.conv;
21 
22 void example(UCache cache)
23 {
24 	import std.stdio;
25 	//string
26 
27 	cache.put!string("test" , "teststring");
28 	string val = cache.get!string("test");
29 
30 
31 	cache.put!string("test1" ,"");
32 	auto val2 = cache.get_ex!string("test1");
33 	assert(!val2.isnull);
34 
35 
36 	//student.
37 	Student stu1;
38 	stu1.ID = 1;
39 	stu1.name = "tom";
40 	stu1.address = "Tianlin Road 1016";
41 	cache.put!Student("tom" , stu1);
42 
43 	Student stu = cache.get!Student("tom");
44 
45 	Nullable!Student nstu = cache.get_ex!Student("tom");
46 	assert(!nstu.isnull);
47 
48 	Student stu2 = nstu.origin;
49 	Student stu3 = cast(Student)nstu;
50 	assert(stu2 == stu);
51 	assert(stu2 == stu);
52 	assert(stu3 == stu);
53 
54 	auto nstu2 = cache.get!Student("jacker");
55 	assert(nstu2 == Student.init);
56 
57 	Nullable!Student nstu3 = cache.get_ex!Student("test");
58 	assert(nstu3.isnull);
59 
60 	//Grade
61 	Grade grade = new Grade();
62 	grade.gradeLevel = 12;
63 	grade.gradeName = "13";
64 	grade.arrStu ~= stu1;
65 
66 	cache.put!Grade("13" , grade);
67 
68 
69 	auto gra = cache.get!Grade("tom");
70 	assert(gra is null);
71 
72 	auto gra1 = cache.get!Grade("13");
73 	assert(gra1 !is null);
74 	writeln(gra1.gradeLevel , " " , gra1.gradeName , " " , gra1.arrStu);
75 
76 }
77 
78 
79 void example2()
80 {
81 	CacheManger manger = new CacheManger();
82 
83 	manger.createCache("default");
84 
85 	manger.createCache("myredis" , "redis" , "127.0.0.1:6379");
86 	manger.createCache("myreids_l2" , "redis" , "127.0.0.1:6379" ,true);
87 
88 	manger.createCache("mymemcached" , "memcached" , "--server=127.0.0.1:11211");
89 
90 	example(manger.getCache("default"));
91 
92 	example(manger.getCache("myredis"));
93 
94 	example(manger.getCache("myreids_l2"));
95 
96 	example(manger.getCache("mymemcached"));
97 
98 }
99 
100 /*
101 void example3(UCache cache)
102 {
103 	const int i = 12;
104 	cache.put!int("count" , i);
105 	cache.put("count_const" , i);
106 	assert(cast(int)cache.get!int("count_const") == i);
107 }*/
108 
109 
110 
111 int main()
112 {
113 	auto cache = UCache.CreateUCache();
114 
115 	example(cache);
116 
117 	example2();
118 
119 
120 	return 0;
121 
122 }