RavenFS.Synchronization.Rdc.Wrapper.SigGenerator.GenerateSignatures C# (CSharp) Метод

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

public GenerateSignatures ( Stream source, string fileName, ISignatureRepository signatureRepository ) : IList
source Stream
fileName string
signatureRepository ISignatureRepository
Результат IList
		public IList<SignatureInfo> GenerateSignatures(Stream source, string fileName,
		                                               ISignatureRepository signatureRepository)
		{
			_recursionDepth = EvaluatetRecursionDepth(source);
			if (_recursionDepth == 0)
				return new List<SignatureInfo>();

			var rdcGenerator = InitializeRdcGenerator();
			try
			{
				return Process(source, rdcGenerator, fileName, signatureRepository);
			}
			finally
			{
				Marshal.ReleaseComObject(rdcGenerator);
			}
		}

Usage Example

		public void Generate_check()
		{
			IList<SignatureInfo> sourceSignatureInfos;
			IList<SignatureInfo> seedSignatureInfos;
			using (var sourceSignatureRepository = CreateSignatureRepositoryFor("test"))
			using (var seedSignatureRepository = CreateSignatureRepositoryFor("test"))
			{
				using (var generator = new SigGenerator())
				{
					seedSignatureInfos = generator.GenerateSignatures(GetSeedStream(), "test", seedSignatureRepository);
				}
				var sourceStream = GetSourceStream();
				using (var generator = new SigGenerator())
				{
					sourceSignatureInfos = generator.GenerateSignatures(sourceStream, "test", sourceSignatureRepository);
				}
				var sourceSize = sourceStream.Length;
				using (var tested = new NeedListGenerator(sourceSignatureRepository, seedSignatureRepository))
				{
					var result = tested.CreateNeedsList(seedSignatureInfos.Last(), sourceSignatureInfos.Last());
					Assert.NotNull(result);

					Assert.Equal(0, sourceSize - result.Sum(x => Convert.ToInt32(x.BlockLength)));
				}
			}
		}
All Usage Examples Of RavenFS.Synchronization.Rdc.Wrapper.SigGenerator::GenerateSignatures