Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Unified Diff: pkg/analysis_server/lib/src/operation/operation_queue.dart

Issue 2957643002: Remove the unused operations queue (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
- }
-}
« no previous file with comments | « pkg/analysis_server/lib/src/operation/operation_analysis.dart ('k') | pkg/analysis_server/lib/src/server/driver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698