diff options
Diffstat (limited to 'examples/summaries/cocoa/cache.py')
-rw-r--r-- | examples/summaries/cocoa/cache.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/summaries/cocoa/cache.py b/examples/summaries/cocoa/cache.py new file mode 100644 index 000000000000..066829d80d4f --- /dev/null +++ b/examples/summaries/cocoa/cache.py @@ -0,0 +1,35 @@ +""" +Objective-C runtime wrapper for use by LLDB Python formatters + +part of The LLVM Compiler Infrastructure +This file is distributed under the University of Illinois Open Source +License. See LICENSE.TXT for details. +""" +import lldb.formatters.metrics + +class Cache: + def __init__(self): + self.data = {} + self.statistics = lldb.formatters.metrics.Metrics() + self.statistics.add_metric('hit') + self.statistics.add_metric('miss') + + def look_for_key(self,key): + if key in self.data: + return True + return False + + def add_item(self,key,value,ok_to_replace=True): + if not(ok_to_replace) and self.look_for_key(key): + return False + self.data[key] = value + return True + + def get_value(self,key,default=None): + if self.look_for_key(key): + self.statistics.metric_hit('hit',key) + return self.data[key] + else: + self.statistics.metric_hit('miss',key) + return default + |