software_feature.cc 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. // Copyright 2018 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. #include "ash/components/multidevice/software_feature.h"
  5. #include "base/notreached.h"
  6. namespace ash::multidevice {
  7. SoftwareFeature FromCryptAuthFeature(
  8. cryptauth::SoftwareFeature cryptauth_feature) {
  9. switch (cryptauth_feature) {
  10. case cryptauth::SoftwareFeature::BETTER_TOGETHER_HOST:
  11. return SoftwareFeature::kBetterTogetherHost;
  12. case cryptauth::SoftwareFeature::BETTER_TOGETHER_CLIENT:
  13. return SoftwareFeature::kBetterTogetherClient;
  14. case cryptauth::SoftwareFeature::EASY_UNLOCK_HOST:
  15. return SoftwareFeature::kSmartLockHost;
  16. case cryptauth::SoftwareFeature::EASY_UNLOCK_CLIENT:
  17. return SoftwareFeature::kSmartLockClient;
  18. case cryptauth::SoftwareFeature::MAGIC_TETHER_HOST:
  19. return SoftwareFeature::kInstantTetheringHost;
  20. case cryptauth::SoftwareFeature::MAGIC_TETHER_CLIENT:
  21. return SoftwareFeature::kInstantTetheringClient;
  22. case cryptauth::SoftwareFeature::SMS_CONNECT_HOST:
  23. return SoftwareFeature::kMessagesForWebHost;
  24. case cryptauth::SoftwareFeature::SMS_CONNECT_CLIENT:
  25. return SoftwareFeature::kMessagesForWebClient;
  26. case cryptauth::SoftwareFeature::PHONE_HUB_HOST:
  27. return SoftwareFeature::kPhoneHubHost;
  28. case cryptauth::SoftwareFeature::PHONE_HUB_CLIENT:
  29. return SoftwareFeature::kPhoneHubClient;
  30. case cryptauth::SoftwareFeature::WIFI_SYNC_HOST:
  31. return SoftwareFeature::kWifiSyncHost;
  32. case cryptauth::SoftwareFeature::WIFI_SYNC_CLIENT:
  33. return SoftwareFeature::kWifiSyncClient;
  34. case cryptauth::SoftwareFeature::ECHE_HOST:
  35. return SoftwareFeature::kEcheHost;
  36. case cryptauth::SoftwareFeature::ECHE_CLIENT:
  37. return SoftwareFeature::kEcheClient;
  38. case cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_HOST:
  39. return SoftwareFeature::kPhoneHubCameraRollHost;
  40. case cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_CLIENT:
  41. return SoftwareFeature::kPhoneHubCameraRollClient;
  42. case cryptauth::SoftwareFeature::UNKNOWN_FEATURE:
  43. NOTREACHED();
  44. }
  45. NOTREACHED();
  46. return SoftwareFeature::kBetterTogetherHost;
  47. }
  48. cryptauth::SoftwareFeature ToCryptAuthFeature(
  49. SoftwareFeature multidevice_feature) {
  50. // Note: No default case needed since SoftwareFeature is an enum class.
  51. switch (multidevice_feature) {
  52. case SoftwareFeature::kBetterTogetherHost:
  53. return cryptauth::SoftwareFeature::BETTER_TOGETHER_HOST;
  54. case SoftwareFeature::kBetterTogetherClient:
  55. return cryptauth::SoftwareFeature::BETTER_TOGETHER_CLIENT;
  56. case SoftwareFeature::kSmartLockHost:
  57. return cryptauth::SoftwareFeature::EASY_UNLOCK_HOST;
  58. case SoftwareFeature::kSmartLockClient:
  59. return cryptauth::SoftwareFeature::EASY_UNLOCK_CLIENT;
  60. case SoftwareFeature::kInstantTetheringHost:
  61. return cryptauth::SoftwareFeature::MAGIC_TETHER_HOST;
  62. case SoftwareFeature::kInstantTetheringClient:
  63. return cryptauth::SoftwareFeature::MAGIC_TETHER_CLIENT;
  64. case SoftwareFeature::kMessagesForWebHost:
  65. return cryptauth::SoftwareFeature::SMS_CONNECT_HOST;
  66. case SoftwareFeature::kMessagesForWebClient:
  67. return cryptauth::SoftwareFeature::SMS_CONNECT_CLIENT;
  68. case SoftwareFeature::kPhoneHubHost:
  69. return cryptauth::SoftwareFeature::PHONE_HUB_HOST;
  70. case SoftwareFeature::kPhoneHubClient:
  71. return cryptauth::SoftwareFeature::PHONE_HUB_CLIENT;
  72. case SoftwareFeature::kWifiSyncHost:
  73. return cryptauth::SoftwareFeature::WIFI_SYNC_HOST;
  74. case SoftwareFeature::kWifiSyncClient:
  75. return cryptauth::SoftwareFeature::WIFI_SYNC_CLIENT;
  76. case SoftwareFeature::kEcheHost:
  77. return cryptauth::SoftwareFeature::ECHE_HOST;
  78. case SoftwareFeature::kEcheClient:
  79. return cryptauth::SoftwareFeature::ECHE_CLIENT;
  80. case SoftwareFeature::kPhoneHubCameraRollHost:
  81. return cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_HOST;
  82. case SoftwareFeature::kPhoneHubCameraRollClient:
  83. return cryptauth::SoftwareFeature::PHONE_HUB_CAMERA_ROLL_CLIENT;
  84. }
  85. NOTREACHED();
  86. return cryptauth::SoftwareFeature::BETTER_TOGETHER_HOST;
  87. }
  88. std::ostream& operator<<(std::ostream& stream, const SoftwareFeature& feature) {
  89. switch (feature) {
  90. case SoftwareFeature::kBetterTogetherHost:
  91. stream << "[Better Together host]";
  92. break;
  93. case SoftwareFeature::kBetterTogetherClient:
  94. stream << "[Better Together client]";
  95. break;
  96. case SoftwareFeature::kSmartLockHost:
  97. stream << "[Smart Lock host]";
  98. break;
  99. case SoftwareFeature::kSmartLockClient:
  100. stream << "[Smart Lock client]";
  101. break;
  102. case SoftwareFeature::kInstantTetheringHost:
  103. stream << "[Instant Tethering host]";
  104. break;
  105. case SoftwareFeature::kInstantTetheringClient:
  106. stream << "[Instant Tethering client]";
  107. break;
  108. case SoftwareFeature::kMessagesForWebHost:
  109. stream << "[Messages for Web host]";
  110. break;
  111. case SoftwareFeature::kMessagesForWebClient:
  112. stream << "[Messages for Web client]";
  113. break;
  114. case SoftwareFeature::kPhoneHubHost:
  115. stream << "[Phone Hub host]";
  116. break;
  117. case SoftwareFeature::kPhoneHubClient:
  118. stream << "[Phone Hub client]";
  119. break;
  120. case SoftwareFeature::kWifiSyncHost:
  121. stream << "[Wifi Sync host]";
  122. break;
  123. case SoftwareFeature::kWifiSyncClient:
  124. stream << "[Wifi Sync client]";
  125. break;
  126. case SoftwareFeature::kEcheHost:
  127. stream << "[Eche host]";
  128. break;
  129. case SoftwareFeature::kEcheClient:
  130. stream << "[Eche client]";
  131. break;
  132. case SoftwareFeature::kPhoneHubCameraRollHost:
  133. stream << "[Phone Hub Camera Roll host]";
  134. break;
  135. case SoftwareFeature::kPhoneHubCameraRollClient:
  136. stream << "[Phone Hub Camera Roll client]";
  137. break;
  138. }
  139. return stream;
  140. }
  141. } // namespace ash::multidevice