Index: pkg/analysis_server/lib/src/operation/operation_queue.dart |
diff --git a/pkg/analysis_server/lib/src/operation/operation_queue.dart b/pkg/analysis_server/lib/src/operation/operation_queue.dart |
deleted file mode 100644 |
index b163b94b0a3624434a5dc2107bd1026668a22110..0000000000000000000000000000000000000000 |
--- a/pkg/analysis_server/lib/src/operation/operation_queue.dart |
+++ /dev/null |
@@ -1,137 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-import 'dart:collection'; |
- |
-import 'package:analysis_server/src/analysis_server.dart'; |
-import 'package:analysis_server/src/operation/operation.dart'; |
-import 'package:analyzer/src/generated/engine.dart'; |
-import 'package:analyzer/src/generated/source.dart'; |
- |
-/** |
- * A queue of operations in an [AnalysisServer]. |
- */ |
-class ServerOperationQueue { |
- final List<Queue<ServerOperation>> _queues = <Queue<ServerOperation>>[]; |
- |
- ServerOperationQueue() { |
- for (int i = 0; i < ServerOperationPriority.COUNT; i++) { |
- var queue = new DoubleLinkedQueue<ServerOperation>(); |
- _queues.add(queue); |
- } |
- } |
- |
- /** |
- * Returns `true` if there are no queued [ServerOperation]s. |
- */ |
- bool get isEmpty { |
- return _queues.every((queue) => queue.isEmpty); |
- } |
- |
- /** |
- * Adds the given operation to this queue. The exact position in the queue |
- * depends on the priority of the given operation relative to the priorities |
- * of the other operations in the queue. |
- */ |
- void add(ServerOperation operation) { |
- int queueIndex = operation.priority.ordinal; |
- Queue<ServerOperation> queue = _queues[queueIndex]; |
- // try to merge into an existing operation |
- for (ServerOperation existingOperation in queue) { |
- if (existingOperation is MergeableOperation && |
- existingOperation.merge(operation)) { |
- return; |
- } |
- } |
- // add it |
- queue.addLast(operation); |
- } |
- |
- /** |
- * Removes all elements in the queue. |
- */ |
- void clear() { |
- for (Queue<ServerOperation> queue in _queues) { |
- queue.clear(); |
- } |
- } |
- |
- /** |
- * The given [context] has been removed, so all pending operations that refer |
- * to it should be removed from the queue. |
- */ |
- void contextRemoved(AnalysisContext context) { |
- for (Queue<ServerOperation> queue in _queues) { |
- queue.removeWhere((operation) => operation.context == context); |
- } |
- } |
- |
- /** |
- * Return the next operation to perform, or `null` if the queue is empty. |
- * This method does not change the queue. |
- */ |
- ServerOperation peek() { |
- for (Queue<ServerOperation> queue in _queues) { |
- if (!queue.isEmpty) { |
- return queue.first; |
- } |
- } |
- return null; |
- } |
- |
- /** |
- * Reschedules queued operations according their current priorities. |
- */ |
- void reschedule() { |
- // prepare all operations |
- List<ServerOperation> operations = <ServerOperation>[]; |
- for (Queue<ServerOperation> queue in _queues) { |
- operations.addAll(queue); |
- queue.clear(); |
- } |
- // add all operations |
- operations.forEach(add); |
- } |
- |
- /** |
- * The given [source] if about to changed. |
- */ |
- void sourceAboutToChange(Source source) { |
- for (Queue<ServerOperation> queue in _queues) { |
- queue.removeWhere((operation) { |
- if (operation is SourceSensitiveOperation) { |
- return operation.shouldBeDiscardedOnSourceChange(source); |
- } |
- return false; |
- }); |
- } |
- } |
- |
- /** |
- * Returns the next operation to perform or `null` if empty. |
- */ |
- ServerOperation take() { |
- for (Queue<ServerOperation> queue in _queues) { |
- if (!queue.isEmpty) { |
- return queue.removeFirst(); |
- } |
- } |
- return null; |
- } |
- |
- /** |
- * Returns an operation that satisfies the given [test] or `null`. |
- */ |
- ServerOperation takeIf(bool test(ServerOperation operation)) { |
- for (Queue<ServerOperation> queue in _queues) { |
- for (ServerOperation operation in queue) { |
- if (test(operation)) { |
- queue.remove(operation); |
- return operation; |
- } |
- } |
- } |
- return null; |
- } |
-} |