Enrico Granata | eb4a479 | 2012-02-23 23:10:27 +0000 | [diff] [blame^] | 1 | import metrics |
| 2 | |
| 3 | class 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 | |