| Index: mojo/services/test_service/test_request_tracker.mojom
|
| diff --git a/mojo/services/test_service/test_request_tracker.mojom b/mojo/services/test_service/test_request_tracker.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d69e139ae8203aa0de24189cb3dc530d86b89c56
|
| --- /dev/null
|
| +++ b/mojo/services/test_service/test_request_tracker.mojom
|
| @@ -0,0 +1,43 @@
|
| +// 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() => (ServiceReport[] report);
|
| +};
|
| +
|
| +// TestRequestTracker records ServiceStats for an individual service
|
| +// connection for aggregation in a TestTrackedRequestService.
|
| +[Client=TestRequestTrackerClient]
|
| +interface TestRequestTracker {
|
| + // Upload a ServiceStats for tracking.
|
| + RecordStats(uint64 client_id, ServiceStats stats);
|
| +};
|
| +
|
| +// The client-side contract for uploading ServiceStats to TestRequestTracker.
|
| +interface TestRequestTrackerClient {
|
| + const uint64 kInvalidId = 0;
|
| + // Handshake to tell the client its global identifier and get the name.
|
| + SetIdAndReturnName(uint64 id) => (string service_name);
|
| +};
|
| +
|
| +} // module mojo.test
|
|
|