cache.py revision b370df27c76fd875f3312be487868528121a4838
1import metrics
2
3class Cache:
4	def __init__(self):
5		self.data = {}
6		self.statistics = metrics.Metrics()
7		self.statistics.add_metric('hit')
8		self.statistics.add_metric('miss')
9
10	def look_for_key(self,key):
11		if key in self.data:
12			return True
13		return False
14
15	def add_item(self,key,value,ok_to_replace=True):
16		if not(ok_to_replace) and self.look_for_key(key):
17			return False
18		self.data[key] = value
19		return True
20
21	def get_value(self,key,default=None):
22		if self.look_for_key(key):
23			self.statistics.metric_hit('hit',key)
24			return self.data[key]
25		else:
26			self.statistics.metric_hit('miss',key)
27			return default
28
29