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

Unified Diff: observatory_pub_packages/analyzer/src/generated/instrumentation.dart

Issue 816693004: Add observatory_pub_packages snapshot to third_party (Closed) Base URL: http://dart.googlecode.com/svn/third_party/
Patch Set: Created 6 years 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: observatory_pub_packages/analyzer/src/generated/instrumentation.dart
===================================================================
--- observatory_pub_packages/analyzer/src/generated/instrumentation.dart (revision 0)
+++ observatory_pub_packages/analyzer/src/generated/instrumentation.dart (working copy)
@@ -0,0 +1,328 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// 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 class `Instrumentation` implements support for logging instrumentation information.
+ *
+ * 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
+ * [InstrumentationBuilder], created by one of the static methods on
+ * this class such as [builder] or [builder].
+ *
+ * Note, however, that until an instrumentation logger is installed using the method
+ * [setLogger], all instrumentation data will be lost.
+ *
+ * <b>Example</b>
+ *
+ * To collect metrics about how long it took to save a file, you would write something like the
+ * following:
+ *
+ * <pre>
+ * InstrumentationBuilder instrumentation = Instrumentation.builder(this.getClass());
+ * // save the file
+ * instrumentation.metric("chars", fileLength).log();
+ * </pre>
+ * The `Instrumentation.builder` method creates a new [InstrumentationBuilder
+ ] and records the time at which it was created. The
+ * [InstrumentationBuilder#metric] appends the information specified by the
+ * arguments and records the time at which the method is called so that the time to complete the
+ * save operation can be calculated. The `log` method tells the builder that all of the data
+ * has been collected and that the resulting information should be logged.
+ */
+class Instrumentation {
+ /**
+ * A builder that will silently ignore all data and logging requests.
+ */
+ static InstrumentationBuilder _NULL_INSTRUMENTATION_BUILDER = new InstrumentationBuilder_Instrumentation_NULL_INSTRUMENTATION_BUILDER();
+
+ /**
+ * 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_Instrumentation_NULL_LOGGER();
+
+ /**
+ * The current instrumentation logger.
+ */
+ static InstrumentationLogger _CURRENT_LOGGER = _NULL_LOGGER;
+
+ /**
+ * Create a builder that can collect the data associated with an operation.
+ *
+ * @param clazz the class performing the operation (not `null`)
+ * @return the builder that was created (not `null`)
+ */
+ static InstrumentationBuilder builder(Type clazz) => _CURRENT_LOGGER.createBuilder(clazz.toString());
+
+ /**
+ * Create a builder that can collect the data associated with an operation.
+ *
+ * @param name the name used to uniquely identify the operation (not `null`)
+ * @return the builder that was created (not `null`)
+ */
+ static InstrumentationBuilder builder2(String name) => _CURRENT_LOGGER.createBuilder(name);
+
+ /**
+ * Get the currently active instrumentation logger
+ */
+ static InstrumentationLogger get logger => _CURRENT_LOGGER;
+
+ /**
+ * Return a builder that will silently ignore all data and logging requests.
+ *
+ * @return the builder (not `null`)
+ */
+ static InstrumentationBuilder get nullBuilder => _NULL_INSTRUMENTATION_BUILDER;
+
+ /**
+ * Is this instrumentation system currently configured to drop instrumentation data provided to
+ * it?
+ *
+ * @return
+ */
+ static bool get isNullLogger => identical(_CURRENT_LOGGER, _NULL_LOGGER);
+
+ /**
+ * 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 ? _NULL_LOGGER : logger;
+ }
+}
+
+/**
+ * The interface `InstrumentationBuilder` defines the behavior of objects used to collect data
+ * about an operation that has occurred and record that data through an instrumentation logger.
+ *
+ * For an example of using objects that implement this interface, see [Instrumentation].
+ */
+abstract class InstrumentationBuilder {
+ /**
+ * Append the given data to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder data(String name, bool value);
+
+ /**
+ * Append the given data to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder data2(String name, int value);
+
+ /**
+ * Append the given data to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder data3(String name, String value);
+
+ /**
+ * Append the given data to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder data4(String name, List<String> value);
+
+ /**
+ * Answer the [InstrumentationLevel] of this `InstrumentationBuilder`.
+ *
+ * @return one of [InstrumentationLevel#EVERYTHING], [InstrumentationLevel#METRICS],
+ * [InstrumentationLevel#OFF]
+ */
+ InstrumentationLevel get instrumentationLevel;
+
+ /**
+ * Log the data that has been collected. The instrumentation 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();
+
+ /**
+ * Log the data that has been collected. The instrumentation 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.
+ *
+ * @param minTimeToLog if the total elapsed time is less than this, do not record
+ */
+ void log2(int minTimeToLog);
+
+ /**
+ * Append the given metric to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder metric(String name, bool value);
+
+ /**
+ * Append the given metric to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder metric2(String name, int value);
+
+ /**
+ * Append the given metric to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder metric3(String name, String value);
+
+ /**
+ * Append the given metric to the data being collected by this builder. The information 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 identify the data
+ * @param value the value of the data to be collected
+ * @return this builder
+ */
+ InstrumentationBuilder metric4(String name, List<String> value);
+
+ /**
+ * Append the given exception to the information being collected by this builder. The exception's
+ * class name is captured using [metric]. Other aspects of the exception
+ * may contain either user identifiable or contains user intellectual property (but is not
+ * guaranteed to contain either) and thus are captured using the various data methods such as
+ * [data].
+ *
+ * @param exception the exception (may be `null`)
+ */
+ InstrumentationBuilder record(Exception exception);
+}
+
+class InstrumentationBuilder_Instrumentation_NULL_INSTRUMENTATION_BUILDER implements InstrumentationBuilder {
+ @override
+ InstrumentationBuilder data(String name, bool value) => this;
+
+ @override
+ InstrumentationBuilder data2(String name, int value) => this;
+
+ @override
+ InstrumentationBuilder data3(String name, String value) => this;
+
+ @override
+ InstrumentationBuilder data4(String name, List<String> value) => this;
+
+ @override
+ InstrumentationLevel get instrumentationLevel => InstrumentationLevel.OFF;
+
+ @override
+ void log() {
+ }
+
+ @override
+ void log2(int minTimeToLong) {
+ }
+
+ @override
+ InstrumentationBuilder metric(String name, bool value) => this;
+
+ @override
+ InstrumentationBuilder metric2(String name, int value) => this;
+
+ @override
+ InstrumentationBuilder metric3(String name, String value) => this;
+
+ @override
+ InstrumentationBuilder metric4(String name, List<String> value) => this;
+
+ @override
+ InstrumentationBuilder record(Exception exception) => this;
+}
+
+/**
+ * The instrumentation recording level representing (1) recording [EVERYTHING] recording of
+ * all instrumentation data, (2) recording only [METRICS] information, or (3) recording
+ * turned [OFF] in which case nothing is recorded.
+ */
+class InstrumentationLevel extends Enum<InstrumentationLevel> {
+ /** Recording all instrumented information */
+ static const InstrumentationLevel EVERYTHING = const InstrumentationLevel('EVERYTHING', 0);
+
+ /** Recording only metrics */
+ static const InstrumentationLevel METRICS = const InstrumentationLevel('METRICS', 1);
+
+ /** Nothing recorded */
+ static const InstrumentationLevel OFF = const InstrumentationLevel('OFF', 2);
+
+ static const List<InstrumentationLevel> values = const [EVERYTHING, METRICS, OFF];
+
+ static InstrumentationLevel fromString(String str) {
+ if (str == "EVERYTHING") {
+ return InstrumentationLevel.EVERYTHING;
+ }
+ if (str == "METRICS") {
+ return InstrumentationLevel.METRICS;
+ }
+ if (str == "OFF") {
+ return InstrumentationLevel.OFF;
+ }
+ throw new IllegalArgumentException("Unrecognised InstrumentationLevel");
+ }
+
+ const InstrumentationLevel(String name, int ordinal) : super(name, ordinal);
+}
+
+/**
+ * The interface `InstrumentationLogger` defines the behavior of objects that are used to log
+ * instrumentation data.
+ *
+ * For an example of using objects that implement this interface, see [Instrumentation].
+ */
+abstract class InstrumentationLogger {
+ /**
+ * Create a builder that can collect the data associated with an operation identified by the given
+ * name.
+ *
+ * @param name the name used to uniquely identify the operation
+ * @return the builder that was created
+ */
+ InstrumentationBuilder createBuilder(String name);
+}
+
+class InstrumentationLogger_Instrumentation_NULL_LOGGER implements InstrumentationLogger {
+ @override
+ InstrumentationBuilder createBuilder(String name) => Instrumentation._NULL_INSTRUMENTATION_BUILDER;
+}

Powered by Google App Engine
This is Rietveld 408576698