blob: acdac08b95de62b6df599988ad4e7c93ef6b4ef7 [file] [log] [blame]
// 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;
}