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

Side by Side Diff: pkg/analyzer/lib/src/generated/incremental_logger.dart

Issue 975453004: Reformat (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 engine.incremental_logger; 5 library engine.incremental_logger;
6 6
7
8 /** 7 /**
9 * The shared instance of [Logger] used by several incremental resolution 8 * The shared instance of [Logger] used by several incremental resolution
10 * classes. It is initialized externally by the Analysis Engine client. 9 * classes. It is initialized externally by the Analysis Engine client.
11 */ 10 */
12 Logger logger = NULL_LOGGER; 11 Logger logger = NULL_LOGGER;
13 12
14 /** 13 /**
15 * An instance of [Logger] that does not print anything. 14 * An instance of [Logger] that does not print anything.
16 */ 15 */
17 final Logger NULL_LOGGER = new _NullLogger(); 16 final Logger NULL_LOGGER = new _NullLogger();
18 17
19 /** 18 /**
20 * An instance of [Logger] that uses `print` for output. 19 * An instance of [Logger] that uses `print` for output.
21 */ 20 */
22 final Logger PRINT_LOGGER = new StringSinkLogger(new _PrintStringSink()); 21 final Logger PRINT_LOGGER = new StringSinkLogger(new _PrintStringSink());
23 22
24
25 /** 23 /**
26 * A simple hierarchical logger. 24 * A simple hierarchical logger.
27 */ 25 */
28 abstract class Logger { 26 abstract class Logger {
29 /** 27 /**
30 * Mark an enter to a new section with the given [name]. 28 * Mark an enter to a new section with the given [name].
31 */ 29 */
32 void enter(String name); 30 void enter(String name);
33 31
34 /** 32 /**
35 * Mark an exit from the current sections, logs the duration. 33 * Mark an exit from the current sections, logs the duration.
36 */ 34 */
37 void exit(); 35 void exit();
38 36
39 /** 37 /**
40 * Logs the given [obj]. 38 * Logs the given [obj].
41 */ 39 */
42 void log(Object obj); 40 void log(Object obj);
43 41
44 /** 42 /**
45 * Starts a new timer. 43 * Starts a new timer.
46 */ 44 */
47 LoggingTimer startTimer(); 45 LoggingTimer startTimer();
48 } 46 }
49 47
50
51 /** 48 /**
52 * The handle of a timer. 49 * The handle of a timer.
53 */ 50 */
54 class LoggingTimer { 51 class LoggingTimer {
55 final Logger _logger; 52 final Logger _logger;
56 final Stopwatch _stopwatch = new Stopwatch(); 53 final Stopwatch _stopwatch = new Stopwatch();
57 54
58 LoggingTimer(this._logger) { 55 LoggingTimer(this._logger) {
59 _stopwatch.start(); 56 _stopwatch.start();
60 } 57 }
61 58
62 /** 59 /**
63 * This methods stop the timer and logs the elapsed time. 60 * This methods stop the timer and logs the elapsed time.
64 */ 61 */
65 void stop(String message) { 62 void stop(String message) {
66 _stopwatch.stop(); 63 _stopwatch.stop();
67 _logger.log('$message in ${_stopwatch.elapsedMilliseconds} ms'); 64 _logger.log('$message in ${_stopwatch.elapsedMilliseconds} ms');
68 } 65 }
69 } 66 }
70 67
71
72 /** 68 /**
73 * A [Logger] that writes to a [StringSink]. 69 * A [Logger] that writes to a [StringSink].
74 */ 70 */
75 class StringSinkLogger implements Logger { 71 class StringSinkLogger implements Logger {
76 static const int _MAX_LINE_LENGTH = 512; 72 static const int _MAX_LINE_LENGTH = 512;
77 final StringSink _sink; 73 final StringSink _sink;
78 final List<_LoggerSection> _sectionStack = <_LoggerSection>[]; 74 final List<_LoggerSection> _sectionStack = <_LoggerSection>[];
79 _LoggerSection _section = new _LoggerSection('', 'ROOT'); 75 _LoggerSection _section = new _LoggerSection('', 'ROOT');
80 76
81 StringSinkLogger(this._sink); 77 StringSinkLogger(this._sink);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 } 119 }
124 return str.split('\n').map((String line) { 120 return str.split('\n').map((String line) {
125 if (line.length > _MAX_LINE_LENGTH) { 121 if (line.length > _MAX_LINE_LENGTH) {
126 line = line.substring(0, _MAX_LINE_LENGTH) + '...'; 122 line = line.substring(0, _MAX_LINE_LENGTH) + '...';
127 } 123 }
128 return line; 124 return line;
129 }).join('\n'); 125 }).join('\n');
130 } 126 }
131 } 127 }
132 128
133
134 class _LoggerSection { 129 class _LoggerSection {
135 final DateTime start = new DateTime.now(); 130 final DateTime start = new DateTime.now();
136 final String indent; 131 final String indent;
137 final String name; 132 final String name;
138 _LoggerSection(this.indent, this.name); 133 _LoggerSection(this.indent, this.name);
139 } 134 }
140 135
141
142 /** 136 /**
143 * A [Logger] that does nothing. 137 * A [Logger] that does nothing.
144 */ 138 */
145 class _NullLogger implements Logger { 139 class _NullLogger implements Logger {
146 @override 140 @override
147 void enter(String name) { 141 void enter(String name) {}
148 }
149 142
150 @override 143 @override
151 void exit() { 144 void exit() {}
152 }
153 145
154 @override 146 @override
155 void log(Object obj) { 147 void log(Object obj) {}
156 }
157 148
158 @override 149 @override
159 LoggingTimer startTimer() { 150 LoggingTimer startTimer() {
160 return new LoggingTimer(this); 151 return new LoggingTimer(this);
161 } 152 }
162 } 153 }
163 154
164
165 /** 155 /**
166 * A [StringSink] implementation that uses `print`. 156 * A [StringSink] implementation that uses `print`.
167 */ 157 */
168 class _PrintStringSink implements StringSink { 158 class _PrintStringSink implements StringSink {
169 String _line = ''; 159 String _line = '';
170 160
171 @override 161 @override
172 void write(Object obj) { 162 void write(Object obj) {
173 if (obj == null) { 163 if (obj == null) {
174 _line += 'null'; 164 _line += 'null';
(...skipping 12 matching lines...) Expand all
187 _line += new String.fromCharCode(charCode); 177 _line += new String.fromCharCode(charCode);
188 } 178 }
189 179
190 @override 180 @override
191 void writeln([Object obj = '']) { 181 void writeln([Object obj = '']) {
192 _line += obj; 182 _line += obj;
193 print(_line); 183 print(_line);
194 _line = ''; 184 _line = '';
195 } 185 }
196 } 186 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/html.dart ('k') | pkg/analyzer/lib/src/generated/incremental_resolution_validator.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698