Battery Status API: add UMA logging for Linux.
[chromium-blink-merge.git] / mojo / services / test_service / test_request_tracker.mojom
blobae541b95a97741be0c9b677fedf9671825a327c7
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 module mojo.test {
7 // Various counters that services can periodically send to a
8 // TestTrackedRequestService for recording.
9 struct ServiceStats {
10   uint64 num_new_requests;
11   double health;
14 // A per-service summary of all the ServiceStats the
15 // TestTrackedRequestService has observed.
16 struct ServiceReport {
17   string? service_name;
18   uint64 total_requests;
19   double mean_health;
22 // A simple interface to obtain a "report" from all services that have
23 // opted to connect themselves to for request tracking.
24 interface TestTrackedRequestService {
25   GetReport() => (ServiceReport?[]? report);
28 // TestRequestTracker records ServiceStats for an individual service
29 // connection for aggregation in a TestTrackedRequestService.
30 [Client=TestRequestTrackerClient]
31 interface TestRequestTracker {
32   // Upload a ServiceStats for tracking.
33   RecordStats(uint64 client_id, ServiceStats? stats);
36 // The client-side contract for uploading ServiceStats to TestRequestTracker.
37 interface TestRequestTrackerClient {
38   const uint64 kInvalidId = 0;
39   // Handshake to tell the client its global identifier and get the name.
40   SetIdAndReturnName(uint64 id) => (string? service_name);
43 }  // module mojo.test