|  | // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | module mojo.test; | 
|  |  | 
|  | // Various counters that services can periodically send to a | 
|  | // TestTrackedRequestService for recording. | 
|  | struct ServiceStats { | 
|  | uint64 num_new_requests; | 
|  | double health; | 
|  | }; | 
|  |  | 
|  | // A per-service summary of all the ServiceStats the | 
|  | // TestTrackedRequestService has observed. | 
|  | struct ServiceReport { | 
|  | string? service_name; | 
|  | uint64 total_requests; | 
|  | double mean_health; | 
|  | }; | 
|  |  | 
|  | // A simple interface to obtain a "report" from all services that have | 
|  | // opted to connect themselves to for request tracking. | 
|  | [ServiceName="mojo::test::TestTrackedRequestService"] | 
|  | interface TestTrackedRequestService { | 
|  | GetReport() => (array<ServiceReport?>? report); | 
|  | }; | 
|  |  | 
|  | // TestRequestTracker records ServiceStats for an individual service | 
|  | // connection for aggregation in a TestTrackedRequestService. | 
|  | [ServiceName="mojo::test::TestRequestTracker"] | 
|  | interface TestRequestTracker { | 
|  | SetNameAndReturnId(string service_name) => (uint64 id); | 
|  | // Upload a ServiceStats for tracking. | 
|  | RecordStats(uint64 client_id, ServiceStats? stats); | 
|  | }; |