| // Copyright (c) 2012 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. |
| |
| #ifndef SYNC_TEST_SESSIONS_TEST_SCOPED_SESSION_EVENT_LISTENER_H_ |
| #define SYNC_TEST_SESSIONS_TEST_SCOPED_SESSION_EVENT_LISTENER_H_ |
| |
| #include "base/macros.h" |
| #include "sync/sessions/sync_session_context.h" |
| |
| namespace syncer { |
| namespace sessions { |
| |
| // Installs a SyncEventListener to a given session context for the lifetime of |
| // the TestScopedSessionEventListener. |
| class TestScopedSessionEventListener { |
| public: |
| TestScopedSessionEventListener( |
| SyncSessionContext* context, |
| SyncEngineEventListener* listener) |
| : context_(context), listener_(listener) { |
| context->listeners_.AddObserver(listener); |
| } |
| ~TestScopedSessionEventListener() { |
| context_->listeners_.RemoveObserver(listener_); |
| } |
| private: |
| SyncSessionContext* context_; |
| SyncEngineEventListener* listener_; |
| DISALLOW_COPY_AND_ASSIGN(TestScopedSessionEventListener); |
| }; |
| |
| } // namespace sessions |
| } // namespace syncer |
| |
| #endif // SYNC_TEST_SESSIONS_TEST_SCOPED_SESSION_EVENT_LISTENER_H_ |