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 
StringToConnectionRole(const std::string & role_str,ConnectionRole * role)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 
ConnectionRoleToString(const ConnectionRole & role,std::string * role_str)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