Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(735)

Side by Side Diff: components/invalidation/invalidation_notifier.h

Issue 446223002: Remove WeakHandle from components/invalidation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fixes Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // An implementation of Invalidator that wraps an invalidation 5 // An implementation of Invalidator that wraps an invalidation
6 // client. Handles the details of connecting to XMPP and hooking it 6 // client. Handles the details of connecting to XMPP and hooking it
7 // up to the invalidation client. 7 // up to the invalidation client.
8 // 8 //
9 // You probably don't want to use this directly; use 9 // You probably don't want to use this directly; use
10 // NonBlockingInvalidator. 10 // NonBlockingInvalidator.
11 11
12 #ifndef COMPONENTS_INVALIDATION_INVALIDATION_NOTIFIER_H_ 12 #ifndef COMPONENTS_INVALIDATION_INVALIDATION_NOTIFIER_H_
13 #define COMPONENTS_INVALIDATION_INVALIDATION_NOTIFIER_H_ 13 #define COMPONENTS_INVALIDATION_INVALIDATION_NOTIFIER_H_
14 14
15 #include <string> 15 #include <string>
16 16
17 #include "base/basictypes.h" 17 #include "base/basictypes.h"
18 #include "base/compiler_specific.h" 18 #include "base/compiler_specific.h"
19 #include "base/memory/ref_counted.h"
19 #include "base/memory/scoped_ptr.h" 20 #include "base/memory/scoped_ptr.h"
21 #include "base/memory/weak_ptr.h"
22 #include "base/sequenced_task_runner.h"
20 #include "base/threading/non_thread_safe.h" 23 #include "base/threading/non_thread_safe.h"
21 #include "components/invalidation/invalidation_export.h" 24 #include "components/invalidation/invalidation_export.h"
22 #include "components/invalidation/invalidation_state_tracker.h" 25 #include "components/invalidation/invalidation_state_tracker.h"
23 #include "components/invalidation/invalidator.h" 26 #include "components/invalidation/invalidator.h"
24 #include "components/invalidation/invalidator_registrar.h" 27 #include "components/invalidation/invalidator_registrar.h"
25 #include "components/invalidation/sync_invalidation_listener.h" 28 #include "components/invalidation/sync_invalidation_listener.h"
26 #include "sync/internal_api/public/util/weak_handle.h"
27 29
28 namespace notifier { 30 namespace notifier {
29 class PushClient; 31 class PushClient;
30 } // namespace notifier 32 } // namespace notifier
31 33
32 namespace syncer { 34 namespace syncer {
33 35
34 // This class must live on the IO thread. 36 // This class must live on the IO thread.
35 class INVALIDATION_EXPORT_PRIVATE InvalidationNotifier 37 class INVALIDATION_EXPORT_PRIVATE InvalidationNotifier
36 : public Invalidator, 38 : public Invalidator,
37 public SyncInvalidationListener::Delegate, 39 public SyncInvalidationListener::Delegate,
38 public base::NonThreadSafe { 40 public base::NonThreadSafe {
39 public: 41 public:
40 // |invalidation_state_tracker| must be initialized. 42 // |invalidation_state_tracker| must be initialized.
41 InvalidationNotifier( 43 InvalidationNotifier(
42 scoped_ptr<SyncNetworkChannel> network_channel, 44 scoped_ptr<SyncNetworkChannel> network_channel,
43 const std::string& invalidator_client_id, 45 const std::string& invalidator_client_id,
44 const UnackedInvalidationsMap& saved_invalidations, 46 const UnackedInvalidationsMap& saved_invalidations,
45 const std::string& invalidation_bootstrap_data, 47 const std::string& invalidation_bootstrap_data,
46 const WeakHandle<InvalidationStateTracker>& 48 const base::WeakPtr<InvalidationStateTracker>& invalidation_state_tracker,
47 invalidation_state_tracker, 49 scoped_refptr<base::SingleThreadTaskRunner>
50 invalidation_state_tracker_task_runner,
48 const std::string& client_info); 51 const std::string& client_info);
49 52
50 virtual ~InvalidationNotifier(); 53 virtual ~InvalidationNotifier();
51 54
52 // Invalidator implementation. 55 // Invalidator implementation.
53 virtual void RegisterHandler(InvalidationHandler* handler) OVERRIDE; 56 virtual void RegisterHandler(InvalidationHandler* handler) OVERRIDE;
54 virtual void UpdateRegisteredIds(InvalidationHandler* handler, 57 virtual void UpdateRegisteredIds(InvalidationHandler* handler,
55 const ObjectIdSet& ids) OVERRIDE; 58 const ObjectIdSet& ids) OVERRIDE;
56 virtual void UnregisterHandler(InvalidationHandler* handler) OVERRIDE; 59 virtual void UnregisterHandler(InvalidationHandler* handler) OVERRIDE;
57 virtual InvalidatorState GetInvalidatorState() const OVERRIDE; 60 virtual InvalidatorState GetInvalidatorState() const OVERRIDE;
(...skipping 19 matching lines...) Expand all
77 STARTED 80 STARTED
78 }; 81 };
79 State state_; 82 State state_;
80 83
81 InvalidatorRegistrar registrar_; 84 InvalidatorRegistrar registrar_;
82 85
83 // Passed to |invalidation_listener_|. 86 // Passed to |invalidation_listener_|.
84 const UnackedInvalidationsMap saved_invalidations_; 87 const UnackedInvalidationsMap saved_invalidations_;
85 88
86 // Passed to |invalidation_listener_|. 89 // Passed to |invalidation_listener_|.
87 const WeakHandle<InvalidationStateTracker> 90 const base::WeakPtr<InvalidationStateTracker> invalidation_state_tracker_;
88 invalidation_state_tracker_; 91 scoped_refptr<base::SequencedTaskRunner>
92 invalidation_state_tracker_task_runner_;
89 93
90 // Passed to |invalidation_listener_|. 94 // Passed to |invalidation_listener_|.
91 const std::string client_info_; 95 const std::string client_info_;
92 96
93 // The client ID to pass to |invalidation_listener_|. 97 // The client ID to pass to |invalidation_listener_|.
94 const std::string invalidator_client_id_; 98 const std::string invalidator_client_id_;
95 99
96 // The initial bootstrap data to pass to |invalidation_listener_|. 100 // The initial bootstrap data to pass to |invalidation_listener_|.
97 const std::string invalidation_bootstrap_data_; 101 const std::string invalidation_bootstrap_data_;
98 102
99 // The invalidation listener. 103 // The invalidation listener.
100 SyncInvalidationListener invalidation_listener_; 104 SyncInvalidationListener invalidation_listener_;
101 105
102 DISALLOW_COPY_AND_ASSIGN(InvalidationNotifier); 106 DISALLOW_COPY_AND_ASSIGN(InvalidationNotifier);
103 }; 107 };
104 108
105 } // namespace syncer 109 } // namespace syncer
106 110
107 #endif // COMPONENTS_INVALIDATION_INVALIDATION_NOTIFIER_H_ 111 #endif // COMPONENTS_INVALIDATION_INVALIDATION_NOTIFIER_H_
OLDNEW
« no previous file with comments | « components/invalidation/invalidation.cc ('k') | components/invalidation/invalidation_notifier.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698