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
17namespace cricket {
18
19bool 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
36bool 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