Chromium Code Reviews| Index: sync/notifier/non_blocking_invalidator.h |
| diff --git a/sync/notifier/non_blocking_invalidator.h b/sync/notifier/non_blocking_invalidator.h |
| index d40166adfc6cf6ae1c4fb1cc455226b8bbaaf1fb..8ab0e698e6eed781a92817f2db4cfff86c073491 100644 |
| --- a/sync/notifier/non_blocking_invalidator.h |
| +++ b/sync/notifier/non_blocking_invalidator.h |
| @@ -11,6 +11,7 @@ |
| #include <string> |
| #include "base/basictypes.h" |
| +#include "base/callback.h" |
| #include "base/compiler_specific.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/weak_ptr.h" |
| @@ -27,21 +28,30 @@ class SingleThreadTaskRunner; |
| } // namespace base |
| namespace syncer { |
| +class SyncNetworkChannel; |
| + |
| +// Callback type for function that creates SyncNetworkChannel. This function |
| +// gets passed into NonBlockingInvalidator constructor. |
| +typedef base::Callback<scoped_ptr<SyncNetworkChannel>(void)> |
| + NetworkChannelCreator; |
| class SYNC_EXPORT_PRIVATE NonBlockingInvalidator |
| : public Invalidator, |
| // InvalidationHandler to "observe" our Core via WeakHandle. |
| public InvalidationHandler { |
| public: |
| + |
|
rlarocque
2014/01/02 18:56:11
nit: remove extra newline.
pavely
2014/01/03 00:33:25
Done.
|
| // |invalidation_state_tracker| must be initialized. |
| NonBlockingInvalidator( |
| - const notifier::NotifierOptions& notifier_options, |
| + NetworkChannelCreator network_channel_creator, |
| const std::string& invalidator_client_id, |
| const UnackedInvalidationsMap& saved_invalidations, |
| const std::string& invalidation_bootstrap_data, |
| const WeakHandle<InvalidationStateTracker>& |
| invalidation_state_tracker, |
| - const std::string& client_info); |
| + const std::string& client_info, |
| + const scoped_refptr<net::URLRequestContextGetter>& |
| + request_context_getter); |
| virtual ~NonBlockingInvalidator(); |
| @@ -59,7 +69,15 @@ class SYNC_EXPORT_PRIVATE NonBlockingInvalidator |
| virtual void OnIncomingInvalidation( |
| const ObjectIdInvalidationMap& invalidation_map) OVERRIDE; |
| + // Static functions to construct callback that creates network channel for |
| + // SyncSystemResources. The goal is to pass network channel to invalidator at |
| + // the same time not exposing channel specific parameters to invalidator and |
| + // channel implementation to client of invalidator. |
| + static NetworkChannelCreator MakePushClientChannelCreator( |
| + const notifier::NotifierOptions& notifier_options); |
| + static NetworkChannelCreator MakeGCMNetworkChannelCreator(); |
| private: |
| + struct InitializeOptions; |
| class Core; |
| InvalidatorRegistrar registrar_; |