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

Side by Side Diff: pkg/analyzer/lib/instrumentation/instrumentation.dart

Issue 956103002: Add instrumentation (issue 22572) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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 instrumentation; 5 library instrumentation;
6 6
7 /** 7 /**
8 * A container with analysis performance constants. 8 * A container with analysis performance constants.
9 */ 9 */
10 class AnalysisPerformanceKind { 10 class AnalysisPerformanceKind {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 * The interface used by client code to communicate with an instrumentation 46 * The interface used by client code to communicate with an instrumentation
47 * server by wrapping an [InstrumentationServer]. 47 * server by wrapping an [InstrumentationServer].
48 */ 48 */
49 class InstrumentationService { 49 class InstrumentationService {
50 /** 50 /**
51 * An instrumentation service that will not log any instrumentation data. 51 * An instrumentation service that will not log any instrumentation data.
52 */ 52 */
53 static final InstrumentationService NULL_SERVICE = 53 static final InstrumentationService NULL_SERVICE =
54 new InstrumentationService(null); 54 new InstrumentationService(null);
55 55
56 static const String TAG_ANALYSIS_TASK = 'Task';
56 static const String TAG_ERROR = 'Err'; 57 static const String TAG_ERROR = 'Err';
57 static const String TAG_EXCEPTION = 'Ex'; 58 static const String TAG_EXCEPTION = 'Ex';
58 static const String TAG_FILE_READ = 'Read'; 59 static const String TAG_FILE_READ = 'Read';
59 static const String TAG_LOG_ENTRY = 'Log'; 60 static const String TAG_LOG_ENTRY = 'Log';
60 static const String TAG_NOTIFICATION = 'Noti'; 61 static const String TAG_NOTIFICATION = 'Noti';
61 static const String TAG_PERFORMANCE = 'Perf'; 62 static const String TAG_PERFORMANCE = 'Perf';
62 static const String TAG_REQUEST = 'Req'; 63 static const String TAG_REQUEST = 'Req';
63 static const String TAG_RESPONSE = 'Res'; 64 static const String TAG_RESPONSE = 'Res';
64 static const String TAG_VERSION = 'Ver'; 65 static const String TAG_VERSION = 'Ver';
66 static const String TAG_WATCH_EVENT = 'Watch';
65 67
66 /** 68 /**
67 * The instrumentation server used to communicate with the server, or `null` 69 * The instrumentation server used to communicate with the server, or `null`
68 * if instrumentation data should not be logged. 70 * if instrumentation data should not be logged.
69 */ 71 */
70 InstrumentationServer _instrumentationServer; 72 InstrumentationServer _instrumentationServer;
71 73
72 /** 74 /**
73 * Initialize a newly created instrumentation service to comunicate with the 75 * Initialize a newly created instrumentation service to comunicate with the
74 * given [instrumentationServer]. 76 * given [instrumentationServer].
75 */ 77 */
76 InstrumentationService(this._instrumentationServer); 78 InstrumentationService(this._instrumentationServer);
77 79
78 /** 80 /**
79 * Return `true` if this [InstrumentationService] was initialized with a 81 * Return `true` if this [InstrumentationService] was initialized with a
80 * non-`null` server (and hence instrumentation is active). 82 * non-`null` server (and hence instrumentation is active).
81 */ 83 */
82 bool get isActive => _instrumentationServer != null; 84 bool get isActive => _instrumentationServer != null;
83 85
84 /** 86 /**
85 * The current time, expressed as a decimal encoded number of milliseconds. 87 * The current time, expressed as a decimal encoded number of milliseconds.
86 */ 88 */
87 String get _timestamp => new DateTime.now().millisecondsSinceEpoch.toString(); 89 String get _timestamp => new DateTime.now().millisecondsSinceEpoch.toString();
88 90
89 /** 91 /**
92 * Log that an analysis task is being performed in the given [context]. The
93 * task has the given [description].
94 */
95 void logAnalysisTask(String context, String description) {
96 if (_instrumentationServer != null) {
97 _instrumentationServer.log(
98 _join([TAG_ANALYSIS_TASK, context, description]));
99 }
100 }
101
102 /**
90 * Log the fact that an error, described by the given [message], has occurred. 103 * Log the fact that an error, described by the given [message], has occurred.
91 */ 104 */
92 void logError(String message) { 105 void logError(String message) {
93 _log(TAG_ERROR, message); 106 _log(TAG_ERROR, message);
94 } 107 }
95 108
96 /** 109 /**
97 * Log that the given non-priority [exception] was thrown, with the given 110 * Log that the given non-priority [exception] was thrown, with the given
98 * [stackTrace]. 111 * [stackTrace].
99 */ 112 */
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 TAG_VERSION, 207 TAG_VERSION,
195 uuid, 208 uuid,
196 normalize(clientId), 209 normalize(clientId),
197 normalize(clientVersion), 210 normalize(clientVersion),
198 serverVersion, 211 serverVersion,
199 sdkVersion])); 212 sdkVersion]));
200 } 213 }
201 } 214 }
202 215
203 /** 216 /**
217 * Log that the file system watcher sent an event. The [folderPath] is the
218 * path to the folder containing the changed file, the [filePath] is the path
219 * of the file that changed, and the [changeType] indicates what kind of
220 * change occurred.
221 */
222 void logWatchEvent(String folderPath, String filePath, String changeType) {
223 if (_instrumentationServer != null) {
224 _instrumentationServer.log(
225 _join([TAG_WATCH_EVENT, folderPath, filePath, changeType]));
226 }
227 }
228
229 /**
204 * Signal that the client is done communicating with the instrumentation 230 * Signal that the client is done communicating with the instrumentation
205 * server. This method should be invoked exactly one time and no other methods 231 * server. This method should be invoked exactly one time and no other methods
206 * should be invoked on this instance after this method has been invoked. 232 * should be invoked on this instance after this method has been invoked.
207 */ 233 */
208 void shutdown() { 234 void shutdown() {
209 if (_instrumentationServer != null) { 235 if (_instrumentationServer != null) {
210 _instrumentationServer.shutdown(); 236 _instrumentationServer.shutdown();
211 _instrumentationServer = null; 237 _instrumentationServer = null;
212 } 238 }
213 } 239 }
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 } 313 }
288 } 314 }
289 315
290 @override 316 @override
291 void shutdown() { 317 void shutdown() {
292 for (InstrumentationServer server in _servers) { 318 for (InstrumentationServer server in _servers) {
293 server.shutdown(); 319 server.shutdown();
294 } 320 }
295 } 321 }
296 } 322 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/context_manager_test.dart ('k') | pkg/analyzer/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698