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. 4 5#ifndef MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_CLIENT_IMPL_H_ 6#define MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_CLIENT_IMPL_H_ 7 8#include "mojo/public/cpp/system/macros.h" 9#include "mojo/services/test_service/test_request_tracker.mojom.h" 10 11namespace mojo { 12namespace test { 13 14class TestRequestTrackerClientImpl : public TestRequestTrackerClient { 15 public: 16 TestRequestTrackerClientImpl( 17 TestRequestTrackerPtr tracker, 18 const std::string& service_name, 19 const mojo::Callback<void()>& tracking_connected_callback); 20 virtual ~TestRequestTrackerClientImpl(); 21 22 // Call whenever an event happens that you want to be recorded. 23 void RecordNewRequest(); 24 25 // TestRequestTrackerClient impl. 26 virtual void SetIdAndReturnName( 27 uint64_t id, 28 const mojo::Callback<void(mojo::String)>& callback) MOJO_OVERRIDE; 29 30 private: 31 void SendStats(); 32 uint64_t id_; 33 uint64_t requests_since_upload_; 34 const std::string service_name_; 35 TestRequestTrackerPtr tracker_; 36 mojo::Callback<void()> tracking_connected_callback_; 37}; 38 39} // namespace test 40} // namespace mojo 41 42#endif // MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_CLIENT_IMPL_H_ 43