| 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..7de6d9517393d824180e565e880a4c70b093a720 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,6 +28,12 @@ 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,
|
| @@ -35,13 +42,15 @@ class SYNC_EXPORT_PRIVATE NonBlockingInvalidator
|
| public:
|
| // |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 +68,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_;
|
|
|