Exemplo n.º 1
0
            private ChecksumObject SaveAndReturn(object key, ChecksumObject checksumObject, ChecksumObjectCache entry = null)
            {
                // create new entry if it is not already given
                ChecksumObjectCache self;

                if (_cache.TryGetValue(key, out self))
                {
                    // we already have entry
                    return(self.Add(checksumObject));
                }

                // either create new entry or re-use given one. this will let us share
                // whole sub checksum tree that is associated with given green node (key)
                entry = _cache.GetOrAdd(key, _ => entry ?? new ChecksumObjectCache());
                return(entry.Add(checksumObject));
            }
Exemplo n.º 2
0
 private ChecksumObject SaveAndReturn(object key, ChecksumObject checksumObject, ChecksumObjectCache entry = null)
 {
     // create new entry if it is not already given
     entry = _cache.GetOrAdd(key, _ => entry ?? new ChecksumObjectCache(checksumObject));
     return(entry.Add(checksumObject));
 }