예제 #1
0
		internal LiveQuery(Query query) : base(query.GetDatabase(), query.GetView())
		{
			// true == running, false == stopped
			runningState = new AtomicBoolean(false);
			SetLimit(query.GetLimit());
			SetSkip(query.GetSkip());
			SetStartKey(query.GetStartKey());
			SetEndKey(query.GetEndKey());
			SetDescending(query.IsDescending());
			SetPrefetch(query.ShouldPrefetch());
			SetKeys(query.GetKeys());
			SetGroupLevel(query.GetGroupLevel());
			SetMapOnly(query.IsMapOnly());
			SetStartKeyDocId(query.GetStartKeyDocId());
			SetEndKeyDocId(query.GetEndKeyDocId());
			SetIndexUpdateMode(query.GetIndexUpdateMode());
		}
예제 #2
0
		public virtual void TestRevFilterReceivesParsedCommits()
		{
			RevCommit a = Commit();
			RevCommit b = Commit(a);
			RevCommit c = Commit(b);
			AtomicBoolean filterRan = new AtomicBoolean();
			RevFilter testFilter = new _RevFilter_68(filterRan);
			// Do an initial run through the walk
			filterRan.Set(false);
			rw.SetRevFilter(testFilter);
			MarkStart(c);
			rw.MarkUninteresting(b);
			for (RevCommit cmit = rw.Next(); cmit != null; cmit = rw.Next())
			{
			}
			// Don't dispose the body here, because we want to test the effect
			// of marking 'b' as uninteresting.
			NUnit.Framework.Assert.IsTrue(filterRan.Get(), "filter ran");
			// Run through the walk again, this time disposing of all commits.
			filterRan.Set(false);
			rw.Reset();
			MarkStart(c);
			for (RevCommit cmit_1 = rw.Next(); cmit_1 != null; cmit_1 = rw.Next())
			{
				cmit_1.DisposeBody();
			}
			NUnit.Framework.Assert.IsTrue(filterRan.Get(), "filter ran");
			// Do the third run through the reused walk. Test that the explicitly
			// disposed commits are parsed on this walk.
			filterRan.Set(false);
			rw.Reset();
			MarkStart(c);
			for (RevCommit cmit_2 = rw.Next(); cmit_2 != null; cmit_2 = rw.Next())
			{
			}
			// spin through the walk.
			NUnit.Framework.Assert.IsTrue(filterRan.Get(), "filter ran");
		}
예제 #3
0
			public _RevFilter_68(AtomicBoolean filterRan)
			{
				this.filterRan = filterRan;
			}