Chromium Code Reviews| Index: chrome/browser/chromeos/arc/arc_session_manager_data_removed_waiter.cc |
| diff --git a/chrome/browser/chromeos/arc/arc_session_manager_data_removed_waiter.cc b/chrome/browser/chromeos/arc/arc_session_manager_data_removed_waiter.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f576bb5df8823fcb0f3b78cf8d3bfbc6c868a06c |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/arc/arc_session_manager_data_removed_waiter.cc |
| @@ -0,0 +1,31 @@ |
| +// Copyright 2017 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/chromeos/arc/arc_session_manager_data_removed_waiter.h" |
| + |
| +#include "base/run_loop.h" |
| + |
| +namespace arc { |
| + |
| +ArcSessionManagerDataRemovedWaiter::ArcSessionManagerDataRemovedWaiter() { |
| + DCHECK(ArcSessionManager::Get()); |
| + ArcSessionManager::Get()->AddObserver(this); |
| +} |
| + |
| +ArcSessionManagerDataRemovedWaiter::~ArcSessionManagerDataRemovedWaiter() { |
| + ArcSessionManager::Get()->RemoveObserver(this); |
| +} |
| + |
| +void ArcSessionManagerDataRemovedWaiter::Wait() { |
| + run_loop_.reset(new base::RunLoop); |
|
hidehiko
2017/01/30 10:12:35
run_loop_ = base::MakeUnique<RunLoop>();
cf) Pleas
khmel
2017/01/31 02:47:08
Done.
|
| + run_loop_->Run(); |
| + run_loop_.reset(); |
| +} |
| + |
| +void ArcSessionManagerDataRemovedWaiter::OnArcDataRemoved() { |
| + if (!run_loop_) |
| + return; |
| + run_loop_->Quit(); |
| +} |
| + |
| +} // namespace arc |