Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / mojo / services / test_service / test_time_service_impl.cc
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
11 namespace mojo {
12 namespace test {
13
14 TestTimeServiceImpl::TestTimeServiceImpl(ApplicationConnection* application)
15     : application_(application) {
16 }
17
18 TestTimeServiceImpl::~TestTimeServiceImpl() {
19 }
20
21 void 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
30 void 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