1 // Copyright 2015 The Weave 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 "src/privet/privet_types.h" 6 7 #include <string> 8 9 #include <weave/enum_to_string.h> 10 #include <weave/export.h> 11 #include <weave/provider/network.h> 12 13 namespace weave { 14 15 namespace { 16 17 using privet::AuthType; 18 using privet::ConnectionState; 19 using privet::CryptoType; 20 using privet::SetupState; 21 using privet::WifiType; 22 using provider::Network; 23 24 const EnumToStringMap<PairingType>::Map kPairingTypeMap[] = { 25 {PairingType::kPinCode, "pinCode"}, 26 {PairingType::kEmbeddedCode, "embeddedCode"}, 27 }; 28 29 const EnumToStringMap<AuthType>::Map kAuthTypeMap[] = { 30 {AuthType::kAnonymous, "anonymous"}, 31 {AuthType::kPairing, "pairing"}, 32 {AuthType::kLocal, "local"}, 33 }; 34 35 const EnumToStringMap<ConnectionState::Status>::Map kConnectionStateMap[] = { 36 {ConnectionState::kDisabled, "disabled"}, 37 {ConnectionState::kUnconfigured, "unconfigured"}, 38 {ConnectionState::kConnecting, "connecting"}, 39 {ConnectionState::kOnline, "online"}, 40 {ConnectionState::kOffline, "offline"}, 41 }; 42 43 const EnumToStringMap<SetupState::Status>::Map kSetupStateMap[] = { 44 {SetupState::kNone, nullptr}, 45 {SetupState::kInProgress, "inProgress"}, 46 {SetupState::kSuccess, "success"}, 47 }; 48 49 const EnumToStringMap<WifiType>::Map kWifiTypeMap[] = { 50 {WifiType::kWifi24, "2.4GHz"}, 51 {WifiType::kWifi50, "5.0GHz"}, 52 }; 53 54 const EnumToStringMap<CryptoType>::Map kCryptoTypeMap[] = { 55 {CryptoType::kSpake_p224, "p224_spake2"}, 56 }; 57 58 const EnumToStringMap<AuthScope>::Map kAuthScopeMap[] = { 59 {AuthScope::kNone, "none"}, 60 {AuthScope::kViewer, "viewer"}, 61 {AuthScope::kUser, "user"}, 62 {AuthScope::kManager, "manager"}, 63 {AuthScope::kOwner, "owner"}, 64 }; 65 66 const EnumToStringMap<Network::State>::Map kNetworkStateMap[] = { 67 {Network::State::kOffline, "offline"}, 68 {Network::State::kError, "error"}, 69 {Network::State::kConnecting, "connecting"}, 70 {Network::State::kOnline, "online"}, 71 }; 72 73 } // namespace 74 75 template <> 76 LIBWEAVE_EXPORT EnumToStringMap<PairingType>::EnumToStringMap() 77 : EnumToStringMap(kPairingTypeMap) {} 78 79 template <> 80 LIBWEAVE_EXPORT EnumToStringMap<AuthType>::EnumToStringMap() 81 : EnumToStringMap(kAuthTypeMap) {} 82 83 template <> 84 LIBWEAVE_EXPORT EnumToStringMap<ConnectionState::Status>::EnumToStringMap() 85 : EnumToStringMap(kConnectionStateMap) {} 86 87 template <> 88 LIBWEAVE_EXPORT EnumToStringMap<SetupState::Status>::EnumToStringMap() 89 : EnumToStringMap(kSetupStateMap) {} 90 91 template <> 92 LIBWEAVE_EXPORT EnumToStringMap<WifiType>::EnumToStringMap() 93 : EnumToStringMap(kWifiTypeMap) {} 94 95 template <> 96 LIBWEAVE_EXPORT EnumToStringMap<CryptoType>::EnumToStringMap() 97 : EnumToStringMap(kCryptoTypeMap) {} 98 99 template <> 100 LIBWEAVE_EXPORT EnumToStringMap<AuthScope>::EnumToStringMap() 101 : EnumToStringMap(kAuthScopeMap) {} 102 103 template <> 104 LIBWEAVE_EXPORT EnumToStringMap<Network::State>::EnumToStringMap() 105 : EnumToStringMap(kNetworkStateMap) {} 106 107 } // namespace weave 108