Home | History | Annotate | Download | only in privet
      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