Home | History | Annotate | Download | only in cocoa
      1 """
      2 Objective-C runtime wrapper for use by LLDB Python formatters
      3 
      4 part of The LLVM Compiler Infrastructure
      5 This file is distributed under the University of Illinois Open Source
      6 License. See LICENSE.TXT for details.
      7 """
      8 import lldb.formatters.metrics
      9 
     10 class Cache:
     11 	def __init__(self):
     12 		self.data = {}
     13 		self.statistics = lldb.formatters.metrics.Metrics()
     14 		self.statistics.add_metric('hit')
     15 		self.statistics.add_metric('miss')
     16 
     17 	def look_for_key(self,key):
     18 		if key in self.data:
     19 			return True
     20 		return False
     21 
     22 	def add_item(self,key,value,ok_to_replace=True):
     23 		if not(ok_to_replace) and self.look_for_key(key):
     24 			return False
     25 		self.data[key] = value
     26 		return True
     27 
     28 	def get_value(self,key,default=None):
     29 		if self.look_for_key(key):
     30 			self.statistics.metric_hit('hit',key)
     31 			return self.data[key]
     32 		else:
     33 			self.statistics.metric_hit('miss',key)
     34 			return default
     35 
     36