OLD | NEW |
| (Empty) |
1 // Copyright 2016 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 "components/sync_driver/device_info_util.h" | |
6 | |
7 #include <algorithm> | |
8 | |
9 #include "base/strings/string_util.h" | |
10 #include "components/sync/protocol/sync.pb.h" | |
11 | |
12 namespace sync_driver { | |
13 | |
14 using base::Time; | |
15 using base::TimeDelta; | |
16 using sync_pb::DeviceInfoSpecifics; | |
17 | |
18 const char DeviceInfoUtil::kClientTagPrefix[] = "DeviceInfo_"; | |
19 const TimeDelta DeviceInfoUtil::kPulseInterval = TimeDelta::FromDays(1); | |
20 const TimeDelta DeviceInfoUtil::kActiveThreshold = TimeDelta::FromDays(14); | |
21 | |
22 namespace { | |
23 | |
24 base::TimeDelta Age(const base::Time last_update, const base::Time now) { | |
25 // Don't allow negative age for things somehow updated in the future. | |
26 return std::max(base::TimeDelta(), now - last_update); | |
27 } | |
28 | |
29 } // namespace | |
30 | |
31 // static | |
32 base::TimeDelta DeviceInfoUtil::CalculatePulseDelay( | |
33 const base::Time last_update, | |
34 const base::Time now) { | |
35 // Don't allow negative delays for very stale data, use delay of 0. | |
36 return std::max(base::TimeDelta(), kPulseInterval - Age(last_update, now)); | |
37 } | |
38 | |
39 // static | |
40 bool DeviceInfoUtil::IsActive(const Time last_update, const Time now) { | |
41 return Age(last_update, now) < kActiveThreshold; | |
42 } | |
43 | |
44 // static | |
45 std::string DeviceInfoUtil::SpecificsToTag( | |
46 const sync_pb::DeviceInfoSpecifics& specifics) { | |
47 return kClientTagPrefix + specifics.cache_guid(); | |
48 } | |
49 | |
50 // static | |
51 std::string DeviceInfoUtil::TagToCacheGuid(const std::string& tag) { | |
52 DCHECK(base::StartsWith(tag, kClientTagPrefix, base::CompareCase::SENSITIVE)); | |
53 return tag.substr(strlen(kClientTagPrefix)); | |
54 } | |
55 | |
56 } // namespace sync_driver | |
OLD | NEW |