SIL.FieldWorks.FDO.Infrastructure.Impl.BigDataSorter.WriteResults C# (CSharp) Метод

WriteResults() публичный Метод

Write out the results. Also deletes the temp files; may only be called once.
public WriteResults ( Action writer ) : void
writer Action
Результат void
		public void WriteResults(Action<byte[]> writer)
		{
			if (m_files.Count == 0)
			{
				foreach (var val in m_sortedObjects.Values)
				{
					writer(val);
				}
				return;
			}

			var items = new List<InputItem>();
			items.Add(new MemoryInputItem(m_sortedObjects));
			foreach (var path in m_files)
			{
				items.Add(new FileInputItem() {Reader = new BinaryReader(File.Open(path, FileMode.Open))});
			}
			foreach (var item in items)
			{
				item.Advance();
			}
			while (items.Count > 0)
			{
				int imin = 0;
				string keyMin = items[0].Key;
				for (int i = 1; i <items.Count; i++)
				{
					if (items[i].Key.CompareTo(keyMin) < 0)
					{
						imin = i;
						keyMin = items[i].Key;
					}
				}
				writer(items[imin].Value);
				items[imin].Advance();
				if (items[imin].Finished)
					items.RemoveAt(imin);
			}
			foreach (var path in m_files)
				File.Delete(path);
		}

Usage Example

Пример #1
0
		public void EmptyList()
		{
			var output = new List<byte[]>();
			var sorter = new BigDataSorter();
			sorter.WriteResults(val => output.Add(val));
			Assert.That(output, Has.Count.EqualTo(0));
		}
All Usage Examples Of SIL.FieldWorks.FDO.Infrastructure.Impl.BigDataSorter::WriteResults