| Index: chrome/browser/sync/notifier/base/network_status_detector_task_mt.cc
|
| ===================================================================
|
| --- chrome/browser/sync/notifier/base/network_status_detector_task_mt.cc (revision 0)
|
| +++ chrome/browser/sync/notifier/base/network_status_detector_task_mt.cc (revision 0)
|
| @@ -0,0 +1,48 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/sync/notifier/base/network_status_detector_task_mt.h"
|
| +
|
| +#include "chrome/browser/sync/notifier/base/async_network_alive.h"
|
| +#include "chrome/browser/sync/notifier/base/signal_thread_task.h"
|
| +
|
| +#include "talk/base/common.h"
|
| +
|
| +namespace notifier {
|
| +
|
| +void NetworkStatusDetectorTaskMT::OnNetworkAliveDone(
|
| + AsyncNetworkAlive* network_alive) {
|
| + ASSERT(network_alive);
|
| + SetNetworkAlive(network_alive->alive());
|
| + // If we got an error from detecting the network alive state,
|
| + // then stop retrying the detection.
|
| + if (network_alive->error()) {
|
| + return;
|
| + }
|
| + StartAsyncDetection(network_alive->ReleaseInfo());
|
| +}
|
| +
|
| +void NetworkStatusDetectorTaskMT::StartAsyncDetection(
|
| + PlatformNetworkInfo* previous_info) {
|
| + // Use the AsyncNetworkAlive to determine the network state (and
|
| + // changes in the network state).
|
| + AsyncNetworkAlive* network_alive = AsyncNetworkAlive::Create();
|
| +
|
| + if (previous_info) {
|
| + network_alive->SetWaitForNetworkChange(previous_info);
|
| + }
|
| + SignalThreadTask<AsyncNetworkAlive>* task =
|
| + new SignalThreadTask<AsyncNetworkAlive>(this, &network_alive);
|
| + task->SignalWorkDone.connect(
|
| + this, &NetworkStatusDetectorTaskMT::OnNetworkAliveDone);
|
| + task->Start();
|
| +}
|
| +
|
| +NetworkStatusDetectorTask* NetworkStatusDetectorTask::Create(
|
| + talk_base::Task* parent) {
|
| + ASSERT(parent);
|
| + return new NetworkStatusDetectorTaskMT(parent);
|
| +}
|
| +
|
| +} // namespace notifier
|
|
|
| Property changes on: chrome\browser\sync\notifier\base\network_status_detector_task_mt.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|