public OmnibusSession Start() { Metainfo metainfo; byte[] data = Bytes.Random(20000); using (FileSandbox temp = new FileSandbox(new EmptyFileLocator())) { MetainfoBuilder builder = new MetainfoBuilder(temp.Directory); string path = temp.CreateFile("debian-8.5.0-amd64-CD-1.iso"); File.WriteAllBytes(path, data); builder.AddFile(path); metainfo = builder.ToMetainfo(); } OmnibusService service = new OmnibusBuilder() .WithHash(metainfo.Hash) .WithPipeline(new PipelineSimulator()) .Build(); return(new OmnibusSession(metainfo, service)); }
private void StartDataMap() { OmnibusHooks hooks = new OmnibusHooks { OnBlockReserved = data => DataGet?.Handle(data), OnPieceReady = data => DataGet?.Handle(data), OnPieceCompleted = OnPieceCompleted, OnThresholdReached = data => DataGet?.Handle(data), OnDataCompleted = OnDataCompleted, OnDataChanged = OnDataChanged }; DataMap = new OmnibusBuilder() .WithHash(Hash) .WithPipeline(Pipeline) .WithSchedulerThreshold(160) .WithPoolSize(512) .Build(hooks); DataMap.Start(); }