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

Side by Side Diff: pkg/analyzer/lib/src/context/cache.dart

Issue 1311773005: Extension point for WorkManagerFactory(s). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Move classes as by review comments. Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer.src.context.cache; 5 library analyzer.src.context.cache;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/src/generated/engine.dart' 10 import 'package:analyzer/src/generated/engine.dart'
11 show AnalysisEngine, CacheState, InternalAnalysisContext, RetentionPriority; 11 show AnalysisEngine, CacheState, InternalAnalysisContext, RetentionPriority;
12 import 'package:analyzer/src/generated/java_engine.dart'; 12 import 'package:analyzer/src/generated/java_engine.dart';
13 import 'package:analyzer/src/generated/source.dart'; 13 import 'package:analyzer/src/generated/source.dart';
14 import 'package:analyzer/src/generated/utilities_collection.dart'; 14 import 'package:analyzer/src/generated/utilities_collection.dart';
15 import 'package:analyzer/src/generated/utilities_general.dart';
16 import 'package:analyzer/src/task/model.dart'; 15 import 'package:analyzer/src/task/model.dart';
17 import 'package:analyzer/task/model.dart'; 16 import 'package:analyzer/task/model.dart';
18 17
19 /** 18 /**
20 * Return `true` if the given [target] is a priority one. 19 * Return `true` if the given [target] is a priority one.
21 */ 20 */
22 typedef bool IsPriorityAnalysisTarget(AnalysisTarget target); 21 typedef bool IsPriorityAnalysisTarget(AnalysisTarget target);
23 22
24 /** 23 /**
25 * An LRU cache of results produced by analysis. 24 * An LRU cache of results produced by analysis.
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 bool isResponsibleFor(AnalysisTarget target) { 1109 bool isResponsibleFor(AnalysisTarget target) {
1111 if (target is AnalysisContextTarget) { 1110 if (target is AnalysisContextTarget) {
1112 return true; 1111 return true;
1113 } 1112 }
1114 Source source = target.source; 1113 Source source = target.source;
1115 return source != null && source.isInSystemLibrary; 1114 return source != null && source.isInSystemLibrary;
1116 } 1115 }
1117 } 1116 }
1118 1117
1119 /** 1118 /**
1120 * A specification of a specific result computed for a specific target.
1121 */
1122 class TargetedResult {
1123 /**
1124 * An empty list of results.
1125 */
1126 static final List<TargetedResult> EMPTY_LIST = const <TargetedResult>[];
1127
1128 /**
1129 * The target with which the result is associated.
1130 */
1131 final AnalysisTarget target;
1132
1133 /**
1134 * The result associated with the target.
1135 */
1136 final ResultDescriptor result;
1137
1138 /**
1139 * Initialize a new targeted result.
1140 */
1141 TargetedResult(this.target, this.result);
1142
1143 @override
1144 int get hashCode {
1145 return JenkinsSmiHash.combine(target.hashCode, result.hashCode);
1146 }
1147
1148 @override
1149 bool operator ==(other) {
1150 return other is TargetedResult &&
1151 other.target == target &&
1152 other.result == result;
1153 }
1154
1155 @override
1156 String toString() => '$result for $target';
1157 }
1158
1159 /**
1160 * A cache partition that contains all targets not contained in other partitions . 1119 * A cache partition that contains all targets not contained in other partitions .
1161 */ 1120 */
1162 class UniversalCachePartition extends CachePartition { 1121 class UniversalCachePartition extends CachePartition {
1163 /** 1122 /**
1164 * Initialize a newly created cache partition, belonging to the given 1123 * Initialize a newly created cache partition, belonging to the given
1165 * [context]. 1124 * [context].
1166 */ 1125 */
1167 UniversalCachePartition(InternalAnalysisContext context) : super(context); 1126 UniversalCachePartition(InternalAnalysisContext context) : super(context);
1168 1127
1169 @override 1128 @override
(...skipping 12 matching lines...) Expand all
1182 void resultAccessed(TargetedResult result) {} 1141 void resultAccessed(TargetedResult result) {}
1183 1142
1184 @override 1143 @override
1185 List<TargetedResult> resultStored(TargetedResult newResult, newValue) { 1144 List<TargetedResult> resultStored(TargetedResult newResult, newValue) {
1186 return TargetedResult.EMPTY_LIST; 1145 return TargetedResult.EMPTY_LIST;
1187 } 1146 }
1188 1147
1189 @override 1148 @override
1190 void targetRemoved(AnalysisTarget target) {} 1149 void targetRemoved(AnalysisTarget target) {}
1191 } 1150 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698