Ejemplo n.º 1
0
        private void RunReplication(ReplicatorConfiguration config, int expectedErrCode, CouchbaseLiteErrorType expectedErrDomain, bool reset = false)
        {
            Misc.SafeSwap(ref _repl, new Replicator(config));
            _waitAssert = new WaitAssert();
            var token = _repl.AddChangeListener((sender, args) =>
            {
                _waitAssert.RunConditionalAssert(() =>
                {
                    VerifyChange(args, expectedErrCode, expectedErrDomain);
                    if (config.Continuous && args.Status.Activity == ReplicatorActivityLevel.Idle &&
                        args.Status.Progress.Completed == args.Status.Progress.Total)
                    {
                        ((Replicator)sender).Stop();
                    }

                    return(args.Status.Activity == ReplicatorActivityLevel.Stopped);
                });
            });

            if (reset)
            {
                _repl.ResetCheckpoint();
            }

            _repl.Start();
            try {
                _waitAssert.WaitForResult(TimeSpan.FromSeconds(10));
            } catch {
                _repl.Stop();
                throw;
            } finally {
                _repl.RemoveChangeListener(token);
            }
        }
Ejemplo n.º 2
0
        private static void ResetReplicatorCheckpoint()
        {
            var database = _Database;
            var url      = new Uri("ws://localhost:4984/db");
            var target   = new URLEndpoint(url);
            var config   = new ReplicatorConfiguration(database, target);

            using (var replicator = new Replicator(config)) {
                // # tag::replication-reset-checkpoint[]
                // replicator is a Replicator instance
                replicator.ResetCheckpoint();
                replicator.Start();
                // # end::replication-reset-checkpoint[]
            }
        }