test_time_service_impl.cc revision 116680a4aac90f2aa7413d9095a592090648e557
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#include "base/time/time.h"
6#include "mojo/public/cpp/application/application_connection.h"
7#include "mojo/services/test_service/test_request_tracker.mojom.h"
8#include "mojo/services/test_service/test_request_tracker_client_impl.h"
9#include "mojo/services/test_service/test_time_service_impl.h"
10
11namespace mojo {
12namespace test {
13
14TestTimeServiceImpl::TestTimeServiceImpl(ApplicationConnection* application)
15    : application_(application) {
16}
17
18TestTimeServiceImpl::~TestTimeServiceImpl() {
19}
20
21void TestTimeServiceImpl::StartTrackingRequests(
22    const mojo::Callback<void()>& callback) {
23  TestRequestTrackerPtr tracker;
24  application_->ConnectToService(
25      "mojo:mojo_test_request_tracker_app", &tracker);
26  tracking_.reset(new TestRequestTrackerClientImpl(
27      tracker.Pass(), Name_, callback));
28}
29
30void TestTimeServiceImpl::GetPartyTime(
31    const mojo::Callback<void(int64_t)>& callback) {
32  if (tracking_)
33    tracking_->RecordNewRequest();
34  base::Time frozen_time(base::Time::UnixEpoch()
35      + base::TimeDelta::FromDays(10957)
36      + base::TimeDelta::FromHours(7)
37      + base::TimeDelta::FromMinutes(59));
38  int64 time(frozen_time.ToInternalValue());
39  callback.Run(time);
40}
41
42}  // namespace test
43}  // namespace mojo
44