File: software_feature.cc

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (148 lines) | stat: -rw-r--r-- 5,842 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ash/components/multidevice/software_feature.h"

#include "base/notreached.h"

namespace ash::multidevice {

SoftwareFeature FromCryptAuthFeature(
    cryptauth::SoftwareFeature cryptauth_feature) {
  switch (cryptauth_feature) {
    case cryptauth::SoftwareFeature::BETTER_TOGETHER_HOST:
      return SoftwareFeature::kBetterTogetherHost;
    case cryptauth::SoftwareFeature::BETTER_TOGETHER_CLIENT:
      return SoftwareFeature::kBetterTogetherClient;
    case cryptauth::SoftwareFeature::EASY_UNLOCK_HOST:
      return SoftwareFeature::kSmartLockHost;
    case cryptauth::SoftwareFeature::EASY_UNLOCK_CLIENT:
      return SoftwareFeature::kSmartLockClient;
    case cryptauth::SoftwareFeature::MAGIC_TETHER_HOST:
      return SoftwareFeature::kInstantTetheringHost;
    case cryptauth::SoftwareFeature::MAGIC_TETHER_CLIENT:
      return SoftwareFeature::kInstantTetheringClient;
    case cryptauth::SoftwareFeature::SMS_CONNECT_HOST:
      return SoftwareFeature::kMessagesForWebHost;
    case cryptauth::SoftwareFeature::SMS_CONNECT_CLIENT:
      return SoftwareFeature::kMessagesForWebClient;
    case cryptauth::SoftwareFeature::PHONE_HUB_HOST:
      return SoftwareFeature::kPhoneHubHost;
    case cryptauth::SoftwareFeature::PHONE_HUB_CLIENT:
      return SoftwareFeature::kPhoneHubClient;
    case cryptauth::SoftwareFeature::WIFI_SYNC_HOST:
      return SoftwareFeature::kWifiSyncHost;
    case cryptauth::SoftwareFeature::WIFI_SYNC_CLIENT:
      return SoftwareFeature::kWifiSyncClient;
    case cryptauth::SoftwareFeature::ECHE_HOST:
      return SoftwareFeature::kEcheHost;
    case cryptauth::SoftwareFeature::ECHE_CLIENT:
      return SoftwareFeature::kEcheClient;
    case cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_HOST:
      return SoftwareFeature::kPhoneHubCameraRollHost;
    case cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_CLIENT:
      return SoftwareFeature::kPhoneHubCameraRollClient;
    case cryptauth::SoftwareFeature::UNKNOWN_FEATURE:
      NOTREACHED();
  }

  NOTREACHED();
}

cryptauth::SoftwareFeature ToCryptAuthFeature(
    SoftwareFeature multidevice_feature) {
  // Note: No default case needed since SoftwareFeature is an enum class.
  switch (multidevice_feature) {
    case SoftwareFeature::kBetterTogetherHost:
      return cryptauth::SoftwareFeature::BETTER_TOGETHER_HOST;
    case SoftwareFeature::kBetterTogetherClient:
      return cryptauth::SoftwareFeature::BETTER_TOGETHER_CLIENT;
    case SoftwareFeature::kSmartLockHost:
      return cryptauth::SoftwareFeature::EASY_UNLOCK_HOST;
    case SoftwareFeature::kSmartLockClient:
      return cryptauth::SoftwareFeature::EASY_UNLOCK_CLIENT;
    case SoftwareFeature::kInstantTetheringHost:
      return cryptauth::SoftwareFeature::MAGIC_TETHER_HOST;
    case SoftwareFeature::kInstantTetheringClient:
      return cryptauth::SoftwareFeature::MAGIC_TETHER_CLIENT;
    case SoftwareFeature::kMessagesForWebHost:
      return cryptauth::SoftwareFeature::SMS_CONNECT_HOST;
    case SoftwareFeature::kMessagesForWebClient:
      return cryptauth::SoftwareFeature::SMS_CONNECT_CLIENT;
    case SoftwareFeature::kPhoneHubHost:
      return cryptauth::SoftwareFeature::PHONE_HUB_HOST;
    case SoftwareFeature::kPhoneHubClient:
      return cryptauth::SoftwareFeature::PHONE_HUB_CLIENT;
    case SoftwareFeature::kWifiSyncHost:
      return cryptauth::SoftwareFeature::WIFI_SYNC_HOST;
    case SoftwareFeature::kWifiSyncClient:
      return cryptauth::SoftwareFeature::WIFI_SYNC_CLIENT;
    case SoftwareFeature::kEcheHost:
      return cryptauth::SoftwareFeature::ECHE_HOST;
    case SoftwareFeature::kEcheClient:
      return cryptauth::SoftwareFeature::ECHE_CLIENT;
    case SoftwareFeature::kPhoneHubCameraRollHost:
      return cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_HOST;
    case SoftwareFeature::kPhoneHubCameraRollClient:
      return cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_CLIENT;
  }

  NOTREACHED();
}

std::ostream& operator<<(std::ostream& stream, const SoftwareFeature& feature) {
  switch (feature) {
    case SoftwareFeature::kBetterTogetherHost:
      stream << "[Better Together host]";
      break;
    case SoftwareFeature::kBetterTogetherClient:
      stream << "[Better Together client]";
      break;
    case SoftwareFeature::kSmartLockHost:
      stream << "[Smart Lock host]";
      break;
    case SoftwareFeature::kSmartLockClient:
      stream << "[Smart Lock client]";
      break;
    case SoftwareFeature::kInstantTetheringHost:
      stream << "[Instant Tethering host]";
      break;
    case SoftwareFeature::kInstantTetheringClient:
      stream << "[Instant Tethering client]";
      break;
    case SoftwareFeature::kMessagesForWebHost:
      stream << "[Messages for Web host]";
      break;
    case SoftwareFeature::kMessagesForWebClient:
      stream << "[Messages for Web client]";
      break;
    case SoftwareFeature::kPhoneHubHost:
      stream << "[Phone Hub host]";
      break;
    case SoftwareFeature::kPhoneHubClient:
      stream << "[Phone Hub client]";
      break;
    case SoftwareFeature::kWifiSyncHost:
      stream << "[Wifi Sync host]";
      break;
    case SoftwareFeature::kWifiSyncClient:
      stream << "[Wifi Sync client]";
      break;
    case SoftwareFeature::kEcheHost:
      stream << "[Eche host]";
      break;
    case SoftwareFeature::kEcheClient:
      stream << "[Eche client]";
      break;
    case SoftwareFeature::kPhoneHubCameraRollHost:
      stream << "[Phone Hub Camera Roll host]";
      break;
    case SoftwareFeature::kPhoneHubCameraRollClient:
      stream << "[Phone Hub Camera Roll client]";
      break;
  }
  return stream;
}

}  // namespace ash::multidevice