| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'common.dart'; |
| import 'constants.dart'; |
| import 'skiaperf.dart'; |
| |
| /// Convenient class to capture the benchmarks in the Flutter engine repo. |
| class FlutterEngineMetricPoint extends MetricPoint { |
| /// Creates a metric point for the Flutter engine repository. |
| /// |
| /// The `name`, `value`, and `gitRevision` parameters must not be null. |
| FlutterEngineMetricPoint( |
| String name, |
| double value, |
| String gitRevision, { |
| Map<String, String> moreTags = const <String, String>{}, |
| }) : super( |
| value, |
| <String, String>{ |
| kNameKey: name, |
| kGithubRepoKey: kFlutterEngineRepo, |
| kGitRevisionKey: gitRevision, |
| }..addAll(moreTags), |
| ); |
| } |
| |
| /// All Flutter performance metrics (framework, engine, ...) should be written |
| /// to this destination. |
| class FlutterDestination extends MetricDestination { |
| FlutterDestination._(this._skiaPerfDestination); |
| |
| /// Creates a [FlutterDestination] from service account JSON. |
| static Future<FlutterDestination> makeFromCredentialsJson( |
| Map<String, dynamic> json, |
| {bool isTesting = false}) async { |
| final SkiaPerfDestination skiaPerfDestination = |
| await SkiaPerfDestination.makeFromGcpCredentials(json, |
| isTesting: isTesting); |
| return FlutterDestination._(skiaPerfDestination); |
| } |
| |
| /// Creates a [FlutterDestination] from an OAuth access token. |
| static Future<FlutterDestination> makeFromAccessToken( |
| String accessToken, String projectId, |
| {bool isTesting = false}) async { |
| final SkiaPerfDestination skiaPerfDestination = |
| await SkiaPerfDestination.makeFromAccessToken(accessToken, projectId, |
| isTesting: isTesting); |
| return FlutterDestination._(skiaPerfDestination); |
| } |
| |
| @override |
| Future<void> update( |
| List<MetricPoint> points, DateTime commitTime, String taskName) async { |
| await _skiaPerfDestination.update(points, commitTime, taskName); |
| } |
| |
| final SkiaPerfDestination _skiaPerfDestination; |
| } |