| // 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. | 
 | interface TestTrackedRequestService { | 
 |   GetReport() => (array<ServiceReport?>? report); | 
 | }; | 
 |  | 
 | // TestRequestTracker records ServiceStats for an individual service | 
 | // connection for aggregation in a TestTrackedRequestService. | 
 | interface TestRequestTracker { | 
 |   SetNameAndReturnId(string service_name) => (uint64 id); | 
 |   // Upload a ServiceStats for tracking. | 
 |   RecordStats(uint64 client_id, ServiceStats? stats); | 
 | }; |