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

Side by Side Diff: utils/pub/version_solver.dart

Issue 10915231: Changed interfaces to abstract classes in utils. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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 | Annotate | Revision Log
« no previous file with comments | « utils/peg/pegparser.dart ('k') | utils/template/tokenizer_base.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 /** 5 /**
6 * Attempts to resolve a set of version constraints for a package dependency 6 * Attempts to resolve a set of version constraints for a package dependency
7 * graph and select an appropriate set of best specific versions for all 7 * graph and select an appropriate set of best specific versions for all
8 * dependent packages. It works iteratively and tries to reach a stable 8 * dependent packages. It works iteratively and tries to reach a stable
9 * solution where the constraints of all dependencies are met. If it fails to 9 * solution where the constraints of all dependencies are met. If it fails to
10 * reach a solution after a certain number of iterations, it assumes the 10 * reach a solution after a certain number of iterations, it assumes the
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 }); 213 });
214 } 214 }
215 } 215 }
216 216
217 /** 217 /**
218 * The constraint solver works by iteratively processing a queue of work items. 218 * The constraint solver works by iteratively processing a queue of work items.
219 * Each item is a single atomic change to the dependency graph. Handling them 219 * Each item is a single atomic change to the dependency graph. Handling them
220 * in a queue lets us handle asynchrony (resolving versions requires information 220 * in a queue lets us handle asynchrony (resolving versions requires information
221 * from servers) as well as avoid deeply nested recursion. 221 * from servers) as well as avoid deeply nested recursion.
222 */ 222 */
223 interface WorkItem { 223 abstract class WorkItem {
224 /** 224 /**
225 * Processes this work item. Returns a future that completes when the work is 225 * Processes this work item. Returns a future that completes when the work is
226 * done. If `null` is returned, that means the work has completed 226 * done. If `null` is returned, that means the work has completed
227 * synchronously and the next item can be started immediately. 227 * synchronously and the next item can be started immediately.
228 */ 228 */
229 Future process(VersionSolver solver); 229 Future process(VersionSolver solver);
230 } 230 }
231 231
232 /** 232 /**
233 * The best selected version for a package has changed to [version]. If the 233 * The best selected version for a package has changed to [version]. If the
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 final description1; 700 final description1;
701 final description2; 701 final description2;
702 702
703 DescriptionMismatchException(this.package, this.description1, 703 DescriptionMismatchException(this.package, this.description1,
704 this.description2); 704 this.description2);
705 705
706 // TODO(nweiz): Dump to YAML when that's supported 706 // TODO(nweiz): Dump to YAML when that's supported
707 String toString() => "Package '$package' has conflicting descriptions " 707 String toString() => "Package '$package' has conflicting descriptions "
708 "'${JSON.stringify(description1)}' and '${JSON.stringify(description2)}'"; 708 "'${JSON.stringify(description1)}' and '${JSON.stringify(description2)}'";
709 } 709 }
OLDNEW
« no previous file with comments | « utils/peg/pegparser.dart ('k') | utils/template/tokenizer_base.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698