1// Copyright (c) 2012 The Chromium 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 "jingle/notifier/listener/push_client.h" 6 7#include <cstddef> 8 9#include "base/bind.h" 10#include "base/single_thread_task_runner.h" 11#include "jingle/notifier/listener/non_blocking_push_client.h" 12#include "jingle/notifier/listener/xmpp_push_client.h" 13 14namespace notifier { 15 16PushClient::~PushClient() {} 17 18namespace { 19 20scoped_ptr<PushClient> CreateXmppPushClient( 21 const NotifierOptions& notifier_options) { 22 return scoped_ptr<PushClient>(new XmppPushClient(notifier_options)); 23} 24 25} // namespace 26 27scoped_ptr<PushClient> PushClient::CreateDefault( 28 const NotifierOptions& notifier_options) { 29 return scoped_ptr<PushClient>(new NonBlockingPushClient( 30 notifier_options.request_context_getter->GetNetworkTaskRunner(), 31 base::Bind(&CreateXmppPushClient, notifier_options))); 32} 33 34scoped_ptr<PushClient> PushClient::CreateDefaultOnIOThread( 35 const NotifierOptions& notifier_options) { 36 CHECK(notifier_options.request_context_getter->GetNetworkTaskRunner()-> 37 BelongsToCurrentThread()); 38 return CreateXmppPushClient(notifier_options); 39} 40 41} // namespace notifier 42