blob: 9a87d8554a3f8a7db688247ef5b15f7935f2695c [file] [log] [blame]
Paul Stewartfdd16072011-09-16 12:41:35 -07001// Copyright (c) 2011 The Chromium OS 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
5#include "shill/technology.h"
6
7#include <string>
Paul Stewart1b253142012-01-26 14:05:52 -08008#include <vector>
Paul Stewartfdd16072011-09-16 12:41:35 -07009
Paul Stewart1b253142012-01-26 14:05:52 -080010#include <base/string_split.h>
Paul Stewartfdd16072011-09-16 12:41:35 -070011#include <chromeos/dbus/service_constants.h>
12
13namespace shill {
14
15using std::string;
Paul Stewart1b253142012-01-26 14:05:52 -080016using std::vector;
Paul Stewartfdd16072011-09-16 12:41:35 -070017
18const char Technology::kUnknownName[] = "Unknown";
19
Gaurav Shah435de2c2011-11-17 19:01:07 -080020// static
Paul Stewart1b253142012-01-26 14:05:52 -080021Technology::Identifier Technology::IdentifierFromName(const string &name) {
Paul Stewartfdd16072011-09-16 12:41:35 -070022 if (name == flimflam::kTypeEthernet) {
23 return kEthernet;
24 } else if (name == flimflam::kTypeWifi) {
25 return kWifi;
26 } else if (name == flimflam::kTypeCellular) {
27 return kCellular;
28 } else {
29 return kUnknown;
30 }
31}
32
Gaurav Shah435de2c2011-11-17 19:01:07 -080033// static
Paul Stewart1b253142012-01-26 14:05:52 -080034string Technology::NameFromIdentifier(Technology::Identifier id) {
Paul Stewartfdd16072011-09-16 12:41:35 -070035 if (id == kEthernet) {
36 return flimflam::kTypeEthernet;
37 } else if (id == kWifi) {
38 return flimflam::kTypeWifi;
39 } else if (id == kCellular) {
40 return flimflam::kTypeCellular;
41 } else {
42 return kUnknownName;
43 }
44}
45
Paul Stewart1b253142012-01-26 14:05:52 -080046// static
47Technology::Identifier Technology::IdentifierFromStorageGroup(
48 const string &group) {
49 vector<string> group_parts;
50 base::SplitString(group, '_', &group_parts);
51 if (group_parts.empty()) {
52 return kUnknown;
53 }
54 return IdentifierFromName(group_parts[0]);
55}
56
Paul Stewartfdd16072011-09-16 12:41:35 -070057} // namespace shill