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_; |