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

Unified Diff: pkg/analyzer-experimental/lib/src/generated/instrumentation.dart

Issue 12197019: Drop of generated scanner and example scanner driver. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer-experimental/lib/src/generated/instrumentation.dart
===================================================================
--- pkg/analyzer-experimental/lib/src/generated/instrumentation.dart (revision 0)
+++ pkg/analyzer-experimental/lib/src/generated/instrumentation.dart (revision 0)
@@ -0,0 +1,189 @@
+// This code was auto-generated, is not intended to be edited, and is subject to
+// significant change. Please see the README file for more information.
+
+library engine.instrumentation;
+
+import 'java_core.dart';
+
+/**
+ * The interface {@code OperationBuilder} defines the behavior of objects used to collect data about
+ * an operation that has occurred and record that data through an instrumentation logger.
+ * <p>
+ * For an example of using objects that implement this interface, see {@link Instrumentation}.
+ */
+abstract class OperationBuilder {
+ /**
+ * Log the data that has been collected. The operation builder should not be used after this
+ * method is invoked. The behavior of any method defined on this interface that is used after this
+ * method is invoked is undefined.
+ */
+ void log();
+ /**
+ * Lazily compute and append the given data to the data being collected by this builder.
+ * @param name the name used to identify the data
+ * @param a function that will be executed in the background to return the value of the data to be
+ * collected
+ * @return this builder
+ */
+ OperationBuilder with2(String name, AsyncValue valueGenerator);
+ /**
+ * Append the given data to the data being collected by this builder.
+ * @param name the name used to identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ OperationBuilder with3(String name, int value);
+ /**
+ * Append the given data to the data being collected by this builder.
+ * @param name the name used to identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ OperationBuilder with4(String name, String value);
+ /**
+ * Append the given data to the data being collected by this builder.
+ * @param name the name used to identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ OperationBuilder with5(String name, List<String> value);
+}
+/**
+ * The interface {@code InstrumentationLogger} defines the behavior of objects that are used to log
+ * instrumentation data.
+ * <p>
+ * For an example of using objects that implement this interface, see {@link Instrumentation}.
+ */
+abstract class InstrumentationLogger {
+ /**
+ * Create an operation builder that can collect the data associated with an operation. The
+ * operation is identified by the given name, is declared to contain only metrics data (data that
+ * is not user identifiable and does not contain user intellectual property), and took the given
+ * amount of time to complete.
+ * @param name the name used to uniquely identify the operation
+ * @param time the number of milliseconds required to perform the operation, or {@code -1} if the
+ * time is not available or not applicable to this kind of operation
+ * @return the operation builder that was created
+ */
+ OperationBuilder createMetric(String name, int time);
+ /**
+ * Create an operation builder that can collect the data associated with an operation. The
+ * operation is identified by the given name, is declared to potentially contain data that is
+ * either user identifiable or contains user intellectual property (but is not guaranteed to
+ * contain either), and took the given amount of time to complete.
+ * @param name the name used to uniquely identify the operation
+ * @param time the number of milliseconds required to perform the operation, or {@code -1} if the
+ * time is not available or not applicable to this kind of operation
+ * @return the operation builder that was created
+ */
+ OperationBuilder createOperation(String name, int time);
+}
+abstract class AsyncValue {
+ /**
+ * Returns a String to be logged This would typically be used with an anonymous implementation
+ * closing over some variables with an expensive operation to be performed in the background
+ * @return The data to be logged
+ */
+ String compute();
+}
+/**
+ * The class {@code Instrumentation} implements support for logging instrumentation information.
+ * <p>
+ * Instrumentation information consists of information about specific operations. Those operations
+ * can range from user-facing operations, such as saving the changes to a file, to internal
+ * operations, such as tokenizing source code. The information to be logged is gathered by an{@link OperationBuilder operation builder}, created by one of the static methods on this class.
+ * <p>
+ * Note, however, that until an instrumentation logger is installed using the method{@link #setLogger(InstrumentationLogger)}, all instrumentation data will be lost.
+ * <p>
+ * <b>Example</b>
+ * <p>
+ * To collect metrics about how long it took to save a file, you would write something like the
+ * following:
+ * <pre>
+ * long startTime = System.currentTimeMillis();
+ * // save the file
+ * long endTime = System.currentTimeMillis();
+ * metric("Save", endTime - startTime).with("chars", fileLength).log();
+ * </pre>
+ * The {@code metric} method creates an operation builder for an operation named {@code "Save"} that
+ * took {@code endTime - startTime} milliseconds to run. The {@code with} method attaches additional
+ * data to the operation; in this case recording that the file was {@code fileLength} characters
+ * long. The {@code log} method tells the builder that all of the data has been collected and that
+ * the resulting information should be logged.
+ */
+class Instrumentation {
+ /**
+ * An instrumentation logger that can be used when no other instrumentation logger has been
+ * configured. This logger will silently ignore all data and logging requests.
+ */
+ static InstrumentationLogger _NULL_LOGGER = new InstrumentationLogger_2();
+ /**
+ * The current instrumentation logger.
+ */
+ static InstrumentationLogger _CURRENT_LOGGER = _NULL_LOGGER;
+ /**
+ * Create an operation builder that can collect the data associated with an operation. The
+ * operation is identified by the given name and is declared to contain only metrics data (data
+ * that is not user identifiable and does not contain user intellectual property).
+ * @param name the name used to uniquely identify the operation
+ * @return the operation builder that was created
+ */
+ static OperationBuilder metric(String name) => _CURRENT_LOGGER.createMetric(name, -1);
+ /**
+ * Create an operation builder that can collect the data associated with an operation. The
+ * operation is identified by the given name, is declared to contain only metrics data (data that
+ * is not user identifiable and does not contain user intellectual property), and took the given
+ * amount of time to complete.
+ * @param name the name used to uniquely identify the operation
+ * @param time the number of milliseconds required to perform the operation
+ * @return the operation builder that was created
+ */
+ static OperationBuilder metric2(String name, int time) => _CURRENT_LOGGER.createMetric(name, time);
+ /**
+ * Create an operation builder that can collect the data associated with an operation. The
+ * operation is identified by the given name and is declared to potentially contain data that is
+ * either user identifiable or contains user intellectual property (but is not guaranteed to
+ * contain either).
+ * @param name the name used to uniquely identify the operation
+ * @return the operation builder that was created
+ */
+ static OperationBuilder operation(String name) => _CURRENT_LOGGER.createOperation(name, -1);
+ /**
+ * Create an operation builder that can collect the data associated with an operation. The
+ * operation is identified by the given name, is declared to potentially contain data that is
+ * either user identifiable or contains user intellectual property (but is not guaranteed to
+ * contain either), and took the given amount of time to complete.
+ * @param name the name used to uniquely identify the operation
+ * @param time the number of milliseconds required to perform the operation
+ * @return the operation builder that was created
+ */
+ static OperationBuilder operation2(String name, int time) => _CURRENT_LOGGER.createOperation(name, time);
+ /**
+ * Set the logger that should receive instrumentation information to the given logger.
+ * @param logger the logger that should receive instrumentation information
+ */
+ static void set logger(InstrumentationLogger logger) {
+ _CURRENT_LOGGER = logger == null ? Instrumentation._NULL_LOGGER : logger;
+ }
+ /**
+ * Prevent the creation of instances of this class
+ */
+ Instrumentation() {
+ }
+}
+class InstrumentationLogger_2 implements InstrumentationLogger {
+ /**
+ * An operation builder that will silently ignore all data and logging requests.
+ */
+ OperationBuilder _NULL_BUILDER = new OperationBuilder_3();
+ OperationBuilder createMetric(String name, int time) => _NULL_BUILDER;
+ OperationBuilder createOperation(String name, int time) => _NULL_BUILDER;
+}
+class OperationBuilder_3 implements OperationBuilder {
+ void log() {
+ }
+ OperationBuilder with2(String name, AsyncValue valueGenerator) => this;
+ OperationBuilder with3(String name, int value) => this;
+ OperationBuilder with4(String name, String value) => this;
+ OperationBuilder with5(String name, List<String> value) => this;
+}
« no previous file with comments | « pkg/analyzer-experimental/lib/src/generated/error.dart ('k') | pkg/analyzer-experimental/lib/src/generated/java_core.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698