blob: 01a79a451960b47a3f5e9c9dfb1e9e8bdbe25822 [file] [log] [blame]
Enrico Granataeb4a4792012-02-23 23:10:27 +00001import 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