OLD | NEW |
| (Empty) |
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 #ifndef SYNC_TEST_SESSIONS_TEST_SCOPED_SESSION_EVENT_LISTENER_H_ | |
6 #define SYNC_TEST_SESSIONS_TEST_SCOPED_SESSION_EVENT_LISTENER_H_ | |
7 | |
8 #include "base/macros.h" | |
9 #include "sync/sessions/sync_session_context.h" | |
10 | |
11 namespace syncer { | |
12 namespace sessions { | |
13 | |
14 // Installs a SyncEventListener to a given session context for the lifetime of | |
15 // the TestScopedSessionEventListener. | |
16 class TestScopedSessionEventListener { | |
17 public: | |
18 TestScopedSessionEventListener( | |
19 SyncSessionContext* context, | |
20 SyncEngineEventListener* listener) | |
21 : context_(context), listener_(listener) { | |
22 context->listeners_.AddObserver(listener); | |
23 } | |
24 ~TestScopedSessionEventListener() { | |
25 context_->listeners_.RemoveObserver(listener_); | |
26 } | |
27 private: | |
28 SyncSessionContext* context_; | |
29 SyncEngineEventListener* listener_; | |
30 DISALLOW_COPY_AND_ASSIGN(TestScopedSessionEventListener); | |
31 }; | |
32 | |
33 } // namespace sessions | |
34 } // namespace syncer | |
35 | |
36 #endif // SYNC_TEST_SESSIONS_TEST_SCOPED_SESSION_EVENT_LISTENER_H_ | |
OLD | NEW |