internal void UnlinkReferences(bool updateId) { if (Reference != null) { if (updateId) { Reference.Id = Id; } Reference.Item = null; } if (m_otherReferences != null) { while (m_otherReferences.Count > 0) { BaseReference baseReference = m_otherReferences.Dequeue(); baseReference.Item = null; if (updateId) { baseReference.Id = Id; } } } Reference = null; m_otherReferences = null; }
public PartitionedTreeScalabilityCache(TreePartitionManager partitionManager, IStorage storage, long cacheExpansionIntervalMs, double cacheExpansionRatio, long minReservedMemoryBytes) : base(storage, cacheExpansionIntervalMs, cacheExpansionRatio, ComponentType.Processing, minReservedMemoryBytes) { m_serializationQueue = new LinkedBucketedQueue <BaseReference>(100); m_cachePriority = new LinkedLRUCache <ItemHolder>(); m_cacheFreeableBytes = 0L; m_partitionManager = partitionManager; }
public sealed override void Dispose() { m_cacheLookup = null; m_cachePriority = null; m_serializationQueue = null; m_pinnedItems = null; base.Dispose(); }
public void AddReference(BaseReference newReference) { if (Reference == null) { Reference = newReference; return; } if (m_otherReferences == null) { m_otherReferences = new LinkedBucketedQueue <BaseReference>(5); } m_otherReferences.Enqueue(newReference); }
private void EnqueueItem(BaseReference itemRef) { Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType objectType = itemRef.GetObjectType(); if (objectType == Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.SubReportInstanceReference) { if (m_pinnedItems == null) { m_pinnedItems = new LinkedBucketedQueue <BaseReference>(25); } m_pinnedItems.Enqueue(itemRef); return; } ReferenceID id = itemRef.Id; if (!id.IsTemporary && (!id.HasMultiPart || m_partitionManager.GetTreePartitionOffset(id) != TreePartitionManager.EmptyTreePartitionOffset)) { m_cachePriority.Add(itemRef.Item); itemRef.InQueue = InQueueState.Exempt; } }
internal QueueEnumerator(LinkedBucketedQueue <T> queue) { m_queue = queue; Reset(); }