private void StartChangeTracker() { Log.D(TAG, "starting ChangeTracker with since = " + LastSequence); var mode = Continuous ? ChangeTrackerMode.LongPoll : ChangeTrackerMode.OneShot; _changeTracker = new ChangeTracker(RemoteUrl, mode, LastSequence, true, this, WorkExecutor); _changeTracker.Authenticator = Authenticator; if (DocIds != null) { if (ServerType != null && ServerType.Name == "CouchDB") { _changeTracker.SetDocIDs(DocIds.ToList()); } else { Log.W(TAG, "DocIds parameter only supported on CouchDB"); } } if (Filter != null) { _changeTracker.SetFilterName(Filter); if (FilterParams != null) { _changeTracker.SetFilterParams(FilterParams.ToDictionary(kvp => kvp.Key, kvp => kvp.Value)); } } _changeTracker.UsePost = CheckServerCompatVersion("0.93"); _changeTracker.Start(); }
private void StartChangeTracker() { var mode = ChangeTrackerMode.OneShot; var pollInterval = ReplicationOptions.PollInterval; if (Continuous && pollInterval == TimeSpan.Zero && ReplicationOptions.UseWebSocket) { mode = ChangeTrackerMode.WebSocket; } Log.To.Sync.V(TAG, "{0} starting ChangeTracker: mode={0} since={1}", this, mode, LastSequence); var initialSync = LocalDatabase.IsOpen && LocalDatabase.GetDocumentCount() == 0; var changeTrackerOptions = new ChangeTrackerOptions { DatabaseUri = RemoteUrl, Mode = mode, IncludeConflicts = true, LastSequenceID = LastSequence, Client = this, RetryStrategy = ReplicationOptions.RetryStrategy, WorkExecutor = WorkExecutor, }; _changeTracker = ChangeTrackerFactory.Create(changeTrackerOptions); _changeTracker.ActiveOnly = initialSync; _changeTracker.Authenticator = Authenticator; _changeTracker.Continuous = Continuous; _changeTracker.PollInterval = pollInterval; _changeTracker.Heartbeat = ReplicationOptions.Heartbeat; if (DocIds != null) { if (ServerType != null && ServerType.Name == "CouchDB") { _changeTracker.DocIDs = DocIds.ToList(); } else { Log.To.Sync.W(TAG, "DocIds parameter only supported on CouchDB"); } } if (Filter != null) { _changeTracker.FilterName = Filter; if (FilterParams != null) { _changeTracker.FilterParameters = FilterParams.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); } } if (ServerType != null) { _changeTracker.ServerType = ServerType; } _changeTracker.Start(); }
private void StartChangeTracker() { var mode = ChangeTrackerMode.OneShot; var pollInterval = ReplicationOptions.PollInterval; if (Continuous && pollInterval == TimeSpan.Zero && ReplicationOptions.UseWebSocket) { mode = ChangeTrackerMode.WebSocket; } _canBulkGet = mode == ChangeTrackerMode.WebSocket; Log.To.Sync.V(TAG, "{0} starting ChangeTracker: mode={0} since={1}", this, mode, LastSequence); var initialSync = LocalDatabase.IsOpen && LocalDatabase.GetDocumentCount() == 0; var changeTrackerOptions = new ChangeTrackerOptions { DatabaseUri = RemoteUrl, Mode = mode, IncludeConflicts = true, LastSequenceID = LastSequence, Client = this, RemoteSession = _remoteSession, RetryStrategy = ReplicationOptions.RetryStrategy, WorkExecutor = WorkExecutor, UsePost = CheckServerCompatVersion("0.9.3") }; _changeTracker = ChangeTrackerFactory.Create(changeTrackerOptions); _changeTracker.ActiveOnly = initialSync; _changeTracker.Continuous = Continuous; _changeTracker.PollInterval = pollInterval; _changeTracker.Heartbeat = ReplicationOptions.Heartbeat; _changeTracker.DocIDs = DocIds?.ToList(); if (Filter != null) { _changeTracker.FilterName = Filter; if (FilterParams != null) { _changeTracker.FilterParameters = FilterParams.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); } } _changeTracker.Start(); }