File: device_info_util.h

package info (click to toggle)
chromium 138.0.7204.157-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,864 kB
  • sloc: cpp: 34,936,859; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,967; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (59 lines) | stat: -rw-r--r-- 2,338 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_UTIL_H_
#define COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_UTIL_H_

#include <string>

#include "base/time/time.h"

namespace sync_pb {
class DeviceInfoSpecifics;
}

namespace syncer {

// This class contains constants and static helper functions that are shared
// between DeviceInfoSyncService and DeviceInfoSyncBridge.
class DeviceInfoUtil {
 public:
  // The prefix to be appended before the cache guid when creating tags. This is
  // needed for backwards compatiblity with all old clients because we need to
  // ensure everyone uses the same logic to generate the tag, so that everyone
  // can independently hash the tag to the same value.
  static const char kClientTagPrefix[];

  // The amount of time a device can go without an updates before we consider it
  // stale/inactive, and start ignoring it for active device counts.
  static const base::TimeDelta kActiveThreshold;

  // The interval with which this device is updated to the sync servers if
  // online and while sync is actively running (e.g. excludes backgrounded apps
  // on Android).
  static base::TimeDelta GetPulseInterval();

  // Determines the amount of time to wait before pulsing something with the
  // given |last_update| timestamp. This uses the current time from |now| along
  // with |GetPulseInterval()|, and will never return a negative delay.
  // The smallest delay this function will return, even for something extremely
  // old will be a delay of 0 time units.
  static base::TimeDelta CalculatePulseDelay(const base::Time last_update,
                                             const base::Time now);

  // Determines if the given |last_update| timestamp should be considered
  // active based on |kActiveThreshold|, given the current time.
  static bool IsActive(const base::Time last_update, const base::Time now);

  // Formats ClientTag from DeviceInfoSpecifics.
  static std::string SpecificsToTag(
      const sync_pb::DeviceInfoSpecifics& specifics);

  // Extracts cache_guid from ClientTag.
  static std::string TagToCacheGuid(const std::string& tag);
};

}  // namespace syncer

#endif  // COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_UTIL_H_