/// <summary>Initialize the synchronized heap.</summary> /// <param name="heap">The heap to synchronize.</param> internal SyncBinaryHeap(BinaryHeap heap) { _heap = heap; }
/// <summary>Initialize the heap with another heap.</summary> /// <param name="heap">The heap on which to perform a shallow-copy.</param> public BinaryHeap(BinaryHeap heap) { // Clone the list (the only state we have) _list = (ArrayList)heap._list.Clone(); }
/// <summary>Ensures that heap is wrapped in a synchronous wrapper.</summary> /// <param name="heap">The heap to be wrapped.</param> /// <returns>A synchronized wrapper for the heap.</returns> public static BinaryHeap Synchronize(BinaryHeap heap) { // Create a synchronization wrapper around the heap and return it. if (heap is SyncBinaryHeap) return heap; return new SyncBinaryHeap(heap); }