Package lldb :: Package formatters :: Module cache

[hide private]
[frames] | no frames]

# Source Code for Module lldb.formatters.cache

     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