1255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang//
2255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// Copyright (C) 2016 The Android Open Source Project
3255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang//
4255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// Licensed under the Apache License, Version 2.0 (the "License");
5255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// you may not use this file except in compliance with the License.
6255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// You may obtain a copy of the License at
7255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang//
8255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang//      http://www.apache.org/licenses/LICENSE-2.0
9255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang//
10255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// Unless required by applicable law or agreed to in writing, software
11255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// distributed under the License is distributed on an "AS IS" BASIS,
12255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// See the License for the specific language governing permissions and
14255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang// limitations under the License.
15255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang//
16255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
17255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang#include "update_engine/connection_utils.h"
18255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
19255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang#include <shill/dbus-constants.h>
20255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
21255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiangnamespace chromeos_update_engine {
22255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiangnamespace connection_utils {
23255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
24255e22b82af3a52218eaea66acc734ec25cfeab6Sen JiangConnectionType ParseConnectionType(const std::string& type_str) {
25255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  if (type_str == shill::kTypeEthernet) {
26255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionType::kEthernet;
27255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  } else if (type_str == shill::kTypeWifi) {
28255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionType::kWifi;
29255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  } else if (type_str == shill::kTypeWimax) {
30255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionType::kWimax;
31255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  } else if (type_str == shill::kTypeBluetooth) {
32255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionType::kBluetooth;
33255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  } else if (type_str == shill::kTypeCellular) {
34255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionType::kCellular;
35255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  }
36255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  return ConnectionType::kUnknown;
37255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang}
38255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
39255e22b82af3a52218eaea66acc734ec25cfeab6Sen JiangConnectionTethering ParseConnectionTethering(const std::string& tethering_str) {
40255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  if (tethering_str == shill::kTetheringNotDetectedState) {
41255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionTethering::kNotDetected;
42255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  } else if (tethering_str == shill::kTetheringSuspectedState) {
43255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionTethering::kSuspected;
44255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  } else if (tethering_str == shill::kTetheringConfirmedState) {
45255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    return ConnectionTethering::kConfirmed;
46255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  }
47255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  return ConnectionTethering::kUnknown;
48255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang}
49255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
50255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiangconst char* StringForConnectionType(ConnectionType type) {
51255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  switch (type) {
52255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    case ConnectionType::kEthernet:
53255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang      return shill::kTypeEthernet;
54255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    case ConnectionType::kWifi:
55255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang      return shill::kTypeWifi;
56255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    case ConnectionType::kWimax:
57255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang      return shill::kTypeWimax;
58255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    case ConnectionType::kBluetooth:
59255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang      return shill::kTypeBluetooth;
60255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    case ConnectionType::kCellular:
61255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang      return shill::kTypeCellular;
62255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang    case ConnectionType::kUnknown:
63255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang      return "Unknown";
64255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  }
65255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang  return "Unknown";
66255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang}
67255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
68255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang}  // namespace connection_utils
69255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang
70255e22b82af3a52218eaea66acc734ec25cfeab6Sen Jiang}  // namespace chromeos_update_engine
71