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