1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_CLIENT_IMPL_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_CLIENT_IMPL_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "mojo/public/cpp/system/macros.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "mojo/services/test_service/test_request_tracker.mojom.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace mojo { 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace test { 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass TestRequestTrackerClientImpl : public TestRequestTrackerClient { 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch TestRequestTrackerClientImpl( 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch TestRequestTrackerPtr tracker, 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string& service_name, 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const mojo::Callback<void()>& tracking_connected_callback); 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~TestRequestTrackerClientImpl(); 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Call whenever an event happens that you want to be recorded. 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void RecordNewRequest(); 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // TestRequestTrackerClient impl. 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SetIdAndReturnName( 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint64_t id, 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const mojo::Callback<void(mojo::String)>& callback) MOJO_OVERRIDE; 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SendStats(); 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint64_t id_; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint64_t requests_since_upload_; 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const std::string service_name_; 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch TestRequestTrackerPtr tracker_; 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mojo::Callback<void()> tracking_connected_callback_; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace test 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace mojo 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // MOJO_SERVICES_TEST_SERVICE_TEST_REQUEST_TRACKER_CLIENT_IMPL_H_ 43