Home | History | Annotate | Download | only in base
      1 /*
      2  *  Copyright 2013 The WebRTC Project Authors. All rights reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #include "webrtc/p2p/base/transportdescription.h"
     12 
     13 #include "webrtc/base/arraysize.h"
     14 #include "webrtc/base/stringutils.h"
     15 #include "webrtc/p2p/base/constants.h"
     16 
     17 namespace cricket {
     18 
     19 bool StringToConnectionRole(const std::string& role_str, ConnectionRole* role) {
     20   const char* const roles[] = {
     21       CONNECTIONROLE_ACTIVE_STR,
     22       CONNECTIONROLE_PASSIVE_STR,
     23       CONNECTIONROLE_ACTPASS_STR,
     24       CONNECTIONROLE_HOLDCONN_STR
     25   };
     26 
     27   for (size_t i = 0; i < arraysize(roles); ++i) {
     28     if (_stricmp(roles[i], role_str.c_str()) == 0) {
     29       *role = static_cast<ConnectionRole>(CONNECTIONROLE_ACTIVE + i);
     30       return true;
     31     }
     32   }
     33   return false;
     34 }
     35 
     36 bool ConnectionRoleToString(const ConnectionRole& role, std::string* role_str) {
     37   switch (role) {
     38     case cricket::CONNECTIONROLE_ACTIVE:
     39       *role_str = cricket::CONNECTIONROLE_ACTIVE_STR;
     40       break;
     41     case cricket::CONNECTIONROLE_ACTPASS:
     42       *role_str = cricket::CONNECTIONROLE_ACTPASS_STR;
     43       break;
     44     case cricket::CONNECTIONROLE_PASSIVE:
     45       *role_str = cricket::CONNECTIONROLE_PASSIVE_STR;
     46       break;
     47     case cricket::CONNECTIONROLE_HOLDCONN:
     48       *role_str = cricket::CONNECTIONROLE_HOLDCONN_STR;
     49       break;
     50     default:
     51       return false;
     52   }
     53   return true;
     54 }
     55 
     56 }  // namespace cricket
     57