internal override void Pin(BaseReference reference) { StorageItem item = (StorageItem)reference.Item; if (item == null) { if (CacheTryGetValue(reference.Id, out item)) { reference.Item = item; item.AddReference(reference); if (item.InQueue == InQueueState.InQueue) { m_cachePriority.Bump(item); } } else { item = LoadItem(reference); } } else if (item.InQueue == InQueueState.InQueue) { m_cachePriority.Bump(item); } item.PinCount++; }
internal sealed override void ReferenceValueCallback(BaseReference reference) { if (reference.InQueue == InQueueState.Exempt) { m_cachePriority.Bump(reference.Item); } base.ReferenceValueCallback(reference); }