BioLib  3.9.1
A GUI-less version of Bio .NET library for editing & annotating various microscopy image formats.
Loading...
Searching...
No Matches
BioLib.LruCache< TileInformation, TValue > Class Template Reference

Classes

class  Info
 

Public Member Functions

 LruCache (int capacity)
 
TValue Get (Info ke)
 
void Add (Info key, TValue value)
 
void RemoveTile (Info key)
 
void Dispose ()
 

Properties

int Count [get]
 

Constructor & Destructor Documentation

◆ LruCache()

BioLib.LruCache< TileInformation, TValue >.LruCache ( int capacity)
29 {
30 this.capacity = capacity;
31 }

Member Function Documentation

◆ Add()

void BioLib.LruCache< TileInformation, TValue >.Add ( Info key,
TValue value )
54 {
55 if (cacheMap.Count >= capacity)
56 {
57 var oldest = lruList.First;
58 if (oldest != null)
59 {
60 lruList.RemoveFirst();
61 cacheMap.Remove(oldest.Value.key);
62 }
63 }
64
65 if (cacheMap.ContainsKey(key))
66 {
67 lruList.Remove(cacheMap[key]);
68 }
69
70 var newNode = new LinkedListNode<(Info key, TValue value)>((key, value));
71 lruList.AddLast(newNode);
72 cacheMap[key] = newNode;
73 }

◆ Dispose()

void BioLib.LruCache< TileInformation, TValue >.Dispose ( )
87 {
88 foreach (LinkedListNode<(Info key, TValue value)> item in cacheMap.Values)
89 {
90 lruList.Remove(item);
91 }
92 }

◆ Get()

TValue BioLib.LruCache< TileInformation, TValue >.Get ( Info ke)
40 {
41 foreach (LinkedListNode<(Info key, TValue value)> item in cacheMap.Values)
42 {
43 if (ke.Coordinate == item.Value.key.Coordinate && ke.Index == item.Value.key.Index)
44 {
45 lruList.Remove(item);
46 lruList.AddLast(item);
47 return item.Value.value;
48 }
49 }
50 return default(TValue);
51 }

◆ RemoveTile()

void BioLib.LruCache< TileInformation, TValue >.RemoveTile ( Info key)
76 {
77 foreach (LinkedListNode<(Info key, TValue value)> item in cacheMap.Values)
78 {
79 Info k = item.Value.key;
80 if (k.Coordinate == key.Coordinate && k.Index == key.Index)
81 {
82 lruList.Remove(item);
83 }
84 }
85 }

Property Documentation

◆ Count

int BioLib.LruCache< TileInformation, TValue >.Count
get
33 {
34 get
35 {
36 return cacheMap.Count;
37 }
38 }

The documentation for this class was generated from the following file: