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.
7 // Various counters that services can periodically send to a
8 // TestTrackedRequestService for recording.
10 uint64 num_new_requests;
14 // A per-service summary of all the ServiceStats the
15 // TestTrackedRequestService has observed.
16 struct ServiceReport {
18 uint64 total_requests;
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);