15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2010 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "jingle/notifier/base/notification_method.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace notifier {
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const NotificationMethod kDefaultNotificationMethod = NOTIFICATION_SERVER;
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string NotificationMethodToString(
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    NotificationMethod notification_method) {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (notification_method) {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case NOTIFICATION_P2P:
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return "NOTIFICATION_P2P";
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case NOTIFICATION_SERVER:
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return "NOTIFICATION_SERVER";
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      LOG(WARNING) << "Unknown value for notification method: "
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   << notification_method;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return "<unknown notification method>";
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NotificationMethod StringToNotificationMethod(const std::string& str) {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (str == "p2p") {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return NOTIFICATION_P2P;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } else if (str == "server") {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return NOTIFICATION_SERVER;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LOG(WARNING) << "Unknown notification method \"" << str
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)               << "\"; using method "
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)               << NotificationMethodToString(kDefaultNotificationMethod);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return kDefaultNotificationMethod;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace notifier
43