11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright (c) 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/services/gcm/chromeos_gcm_connection_observer.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/callback.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/logging.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chromeos/dbus/dbus_thread_manager.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chromeos/dbus/shill_manager_client.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace gcm { 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChromeOSGCMConnectionObserver::ChromeOSGCMConnectionObserver() { 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChromeOSGCMConnectionObserver::~ChromeOSGCMConnectionObserver() { 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// static 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid ChromeOSGCMConnectionObserver::ErrorCallback( 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& error_name, 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& error) { 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci LOG(ERROR) << "GCM D-Bus method error " << error_name << ": " << error; 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid ChromeOSGCMConnectionObserver::OnConnected( 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const net::IPEndPoint& ip_endpoint) { 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ip_endpoint_ = ip_endpoint; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci chromeos::DBusThreadManager::Get()-> 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci GetShillManagerClient()-> 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci AddWakeOnPacketConnection( 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ip_endpoint, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base::Bind(&base::DoNothing), 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base::Bind(&ChromeOSGCMConnectionObserver::ErrorCallback)); 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid ChromeOSGCMConnectionObserver::OnDisconnected() { 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci chromeos::DBusThreadManager::Get()-> 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci GetShillManagerClient()-> 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci RemoveWakeOnPacketConnection( 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ip_endpoint_, 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base::Bind(&base::DoNothing), 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base::Bind(&ChromeOSGCMConnectionObserver::ErrorCallback)); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace gcm 48