11from collections import OrderedDict
22from libcachesim import PluginCache , CommonCacheParams , Request , SyntheticReader , LRU
33
4+
45class StandaloneLRU :
56 def __init__ (self ):
67 self .cache_data = OrderedDict ()
@@ -25,21 +26,27 @@ def cache_remove(self, obj_id):
2526def cache_init_hook (common_cache_params : CommonCacheParams ):
2627 return StandaloneLRU ()
2728
29+
2830def cache_hit_hook (cache , request : Request ):
2931 cache .cache_hit (request .obj_id )
3032
33+
3134def cache_miss_hook (cache , request : Request ):
3235 cache .cache_miss (request .obj_id , request .obj_size )
3336
37+
3438def cache_eviction_hook (cache , request : Request ):
3539 return cache .cache_eviction ()
3640
41+
3742def cache_remove_hook (cache , obj_id ):
3843 cache .cache_remove (obj_id )
3944
45+
4046def cache_free_hook (cache ):
4147 cache .cache_data .clear ()
4248
49+
4350plugin_lru_cache = PluginCache (
4451 cache_size = 1024 ,
4552 cache_init_hook = cache_init_hook ,
@@ -48,7 +55,8 @@ def cache_free_hook(cache):
4855 cache_eviction_hook = cache_eviction_hook ,
4956 cache_remove_hook = cache_remove_hook ,
5057 cache_free_hook = cache_free_hook ,
51- cache_name = "CustomizedLRU" )
58+ cache_name = "CustomizedLRU" ,
59+ )
5260
5361ref_lru_cache = LRU (cache_size = 1024 )
5462
@@ -67,6 +75,3 @@ def cache_free_hook(cache):
6775 assert plugin_hit == ref_hit , f"Cache hit mismatch: { plugin_hit } != { ref_hit } "
6876
6977print ("All requests processed successfully. Plugin cache matches reference LRU cache." )
70-
71-
72-
0 commit comments