Example #1
0
        private static int CountNonNotes(NoteMap map)
        {
            int          c        = 0;
            NonNoteEntry nonNotes = map.GetRoot().nonNotes;

            while (nonNotes != null)
            {
                c++;
                nonNotes = nonNotes.next;
            }
            return(c);
        }
Example #2
0
 /// <summary>Performs the merge.</summary>
 /// <remarks>Performs the merge.</remarks>
 /// <param name="base">base version of the note tree</param>
 /// <param name="ours">ours version of the note tree</param>
 /// <param name="theirs">theirs version of the note tree</param>
 /// <returns>merge result as a new NoteMap</returns>
 /// <exception cref="System.IO.IOException">System.IO.IOException</exception>
 public virtual NoteMap Merge(NoteMap @base, NoteMap ours, NoteMap theirs)
 {
     try
     {
         InMemoryNoteBucket mergedBucket = Merge(0, @base.GetRoot(), ours.GetRoot(), theirs
                                                 .GetRoot());
         inserter.Flush();
         return(NoteMap.NewMap(mergedBucket, reader));
     }
     finally
     {
         reader.Release();
         inserter.Release();
     }
 }
Example #3
0
        public virtual void TestCollapseFanoutAfterMerge()
        {
            NoteMapMerger merger    = new NoteMapMerger(db, null, null);
            NoteMap       largeTree = CreateLargeNoteMap("note_", "content_", 257, 0);

            NUnit.Framework.Assert.IsTrue(largeTree.GetRoot() is FanoutBucket);
            NoteMap deleteFirstHundredNotes = CreateLargeNoteMap("note_", "content_", 157, 100
                                                                 );
            NoteMap deleteLastHundredNotes = CreateLargeNoteMap("note_", "content_", 157, 0);
            NoteMap result = merger.Merge(largeTree, deleteFirstHundredNotes, deleteLastHundredNotes
                                          );

            NUnit.Framework.Assert.AreEqual(57, CountNotes(result));
            NUnit.Framework.Assert.IsTrue(result.GetRoot() is LeafBucket);
        }
Example #4
0
		/// <summary>Performs the merge.</summary>
		/// <remarks>Performs the merge.</remarks>
		/// <param name="base">base version of the note tree</param>
		/// <param name="ours">ours version of the note tree</param>
		/// <param name="theirs">theirs version of the note tree</param>
		/// <returns>merge result as a new NoteMap</returns>
		/// <exception cref="System.IO.IOException">System.IO.IOException</exception>
		public virtual NoteMap Merge(NoteMap @base, NoteMap ours, NoteMap theirs)
		{
			try
			{
				InMemoryNoteBucket mergedBucket = Merge(0, @base.GetRoot(), ours.GetRoot(), theirs
					.GetRoot());
				inserter.Flush();
				return NoteMap.NewMap(mergedBucket, reader);
			}
			finally
			{
				reader.Release();
				inserter.Release();
			}
		}
Example #5
0
		private static int CountNonNotes(NoteMap map)
		{
			int c = 0;
			NonNoteEntry nonNotes = map.GetRoot().nonNotes;
			while (nonNotes != null)
			{
				c++;
				nonNotes = nonNotes.next;
			}
			return c;
		}