public byte[] SaveNodes() { var details = new BEncodedList(); MainLoop.QueueWait(() => { foreach (var bucket in RoutingTable.Buckets) { foreach (var node in bucket.Nodes) { if (node.State != NodeState.Bad) { details.Add(node.CompactNode()); } } if (bucket.Replacement != null) { if (bucket.Replacement.State != NodeState.Bad) { details.Add(bucket.Replacement.CompactNode()); } } } }); return(details.Encode()); }
public byte[] SaveNodes() { BEncodedList details = new BEncodedList(); MainLoop.QueueWait(delegate { foreach (Bucket b in RoutingTable.Buckets) { foreach (Node n in b.Nodes) { if (n.State != NodeState.Bad) { details.Add(n.CompactNode()); } } if (b.Replacement != null) { if (b.Replacement.State != NodeState.Bad) { details.Add(b.Replacement.CompactNode()); } } } }); return(details.Encode()); }
public void Stop() { if (torrentManager.State != TorrentState.Hashing) { torrentManager.Stop(); while (torrentManager.State != TorrentState.Stopped) { Thread.Sleep(250); } BEncodedList bl = new BEncodedList(); FastResume fr = torrentManager.SaveFastResume(); BEncodedDictionary item = fr.Encode(); bl.Add(item); File.WriteAllBytes(fastResumeFile, bl.Encode()); } else { torrentManager.Stop(); } File.WriteAllBytes(dhtNodesFile, clientEngine.DhtEngine.SaveNodes()); clientEngine.Dispose(); }
public async Task <byte[]> SaveNodesAsync() { await MainLoop; var details = new BEncodedList(); foreach (Bucket b in RoutingTable.Buckets) { foreach (Node n in b.Nodes) { if (n.State != NodeState.Bad) { details.Add(n.CompactNode()); } } if (b.Replacement != null) { if (b.Replacement.State != NodeState.Bad) { details.Add(b.Replacement.CompactNode()); } } } return(details.Encode()); }
public void benListStackedTest() { string benString = "l6:stringl7:stringsl8:stringedei23456eei12345ee"; byte[] data = System.Text.Encoding.UTF8.GetBytes(benString); BEncodedList list = (BEncodedList)BEncodedValue.Decode(data); string decoded = System.Text.Encoding.UTF8.GetString(list.Encode()); Assert.AreEqual(benString, decoded); }
public void benListEncoding() { byte[] data = System.Text.Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); BEncodedList list = new BEncodedList(); list.Add(new BEncodedString("test")); list.Add(new BEncodedString("tests")); list.Add(new BEncodedString("tested")); Assert.IsTrue(Toolbox.ByteMatch(data, list.Encode())); }
public void benListEncoding() { var data = Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); var list = new BEncodedList { new BEncodedString("test"), new BEncodedString("tests"), new BEncodedString("tested") }; Assert.IsTrue(Toolbox.ByteMatch(data, list.Encode())); }
public void benListEncodingBuffered() { byte[] data = System.Text.Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); BEncodedList list = new BEncodedList(); list.Add(new BEncodedString("test")); list.Add(new BEncodedString("tests")); list.Add(new BEncodedString("tested")); byte[] result = new byte[list.LengthInBytes()]; list.Encode(result, 0); Assert.IsTrue(Toolbox.ByteMatch(data, result)); }
private void SaveFastResume(TorrentManager[] managers) { BEncodedList list = new BEncodedList(); foreach (TorrentManager manager in managers) { FastResume data = manager.SaveFastResume(); BEncodedDictionary fastResume = data.Encode(); list.Add(fastResume); } File.WriteAllBytes(pathToFolderApplicationData + "\\FastResume.dat", list.Encode()); }
public void benListEncodingBuffered() { var data = Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); var list = new BEncodedList { new BEncodedString("test"), new BEncodedString("tests"), new BEncodedString("tested") }; var result = new byte[list.LengthInBytes()]; list.Encode(result, 0); Assert.IsTrue(Toolbox.ByteMatch(data, result)); }
public void StoreFastResume() { try { logger.Info("storing fast resume"); BEncodedList list = new BEncodedList(); foreach (Download t in Torrents) { list.Add(t.SaveFastResume().Encode()); } File.WriteAllBytes(Defines.SerializedFastResume, list.Encode()); } catch (Exception ex) { logger.Warn(string.Format("Couldn't store fast resume: {0}", ex)); } }
public void SaveFastResume() { if (string.IsNullOrWhiteSpace(settings.FastResumePath)) { return; } var encodedList = new BEncodedList(); var fastResumeData = torrentsReadonly .Where(x => x.HashChecked) .Select(tm => tm.SaveFastResume().Encode()); foreach (var data in fastResumeData) { encodedList.Add(data); } File.WriteAllBytes(settings.FastResumePath, encodedList.Encode()); }
public void benListEncoding() { var data = Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); var list = new BEncodedList(); list.Add(new BEncodedString("test")); list.Add(new BEncodedString("tests")); list.Add(new BEncodedString("tested")); Assert.True(Toolbox.ByteMatch(data, list.Encode())); }
public byte[] SaveNodes() { BEncodedList details = new BEncodedList(); MainLoop.QueueWait((MainLoopTask)delegate { foreach (Bucket b in RoutingTable.Buckets) { foreach (Node n in b.Nodes) if (n.State != NodeState.Bad) details.Add(n.CompactNode()); if (b.Replacement != null) if (b.Replacement.State != NodeState.Bad) details.Add(b.Replacement.CompactNode()); } }); return details.Encode(); }
public void SaveFastResume() { if (string.IsNullOrWhiteSpace(settings.FastResumePath)) return; var encodedList = new BEncodedList(); var fastResumeData = torrentsReadonly .Where(x => x.HashChecked) .Select(tm => tm.SaveFastResume().Encode()); foreach (var data in fastResumeData) encodedList.Add(data); File.WriteAllBytes(settings.FastResumePath, encodedList.Encode()); }
public void benListEncodingBuffered() { byte[] data = System.Text.Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); BEncodedList list = new BEncodedList(); list.Add(new BEncodedString("test")); list.Add(new BEncodedString("tests")); list.Add(new BEncodedString("tested")); byte[] result = new byte[list.LengthInBytes()]; list.Encode(result, 0); Assert.IsTrue(Toolbox.ByteMatch(data, result)); }
public void benListEncoding() { byte[] data = System.Text.Encoding.UTF8.GetBytes("l4:test5:tests6:testede"); BEncodedList list = new BEncodedList(); list.Add(new BEncodedString("test")); list.Add(new BEncodedString("tests")); list.Add(new BEncodedString("tested")); Assert.IsTrue(Toolbox.ByteMatch(data, list.Encode())); }
public void SaveFastResume(List <TorrentManager> managers) { // Store the fast resume for each torrent in a list, // then serialise the list to the disk. BEncodedList list = new BEncodedList (); foreach (TorrentManager manager in managers) { // Get the fast resume data for the torrent FastResume data = manager.SaveFastResume (); // Encode the FastResume data to a BEncodedDictionary. BEncodedDictionary fastResume = data.Encode (); // Add the FastResume dictionary to the main dictionary using // the torrents infohash as the key list.Add((fastResume as BEncodedValue)); } // Write all the fast resume data to disk File.WriteAllBytes (fastResumePath, list.Encode ()); }
public byte[] SaveNodes() { var details = new BEncodedList(); MainLoop.QueueWait(delegate { foreach (var b in RoutingTable.Buckets) { foreach (var n in b.Nodes.Where(n => n.State != NodeState.Bad)) details.Add(n.CompactNode()); if (b.Replacement != null) if (b.Replacement.State != NodeState.Bad) details.Add(b.Replacement.CompactNode()); } }); return details.Encode(); }
public void SaveState() { BEncodedList list = new BEncodedList (); foreach (TorrentManagerAdapter adapter in this.downloaders.Values) { TorrentData d = new TorrentData (); d.FastResume = adapter.Manager.SaveFastResume (); d.SavePath = adapter.Manager.SavePath; d.Settings = adapter.Manager.Settings; d.TorrentPath = adapter.Manager.Torrent.TorrentPath; list.Add (d.Serialize ()); } System.IO.File.WriteAllBytes (System.IO.Path.Combine (StoragePath, SettingsFile), list.Encode ()); }
public void saveFastResume(List<TorrentManager> managers) { BEncodedList list = new BEncodedList(); foreach (TorrentManager manager in managers) { FastResume data = manager.SaveFastResume(); BEncodedDictionary fastResume = data.Encode(); list.Add(fastResume); } File.WriteAllBytes(fastResumePath, list.Encode()); }
public void StoreFastResume() { try { logger.Info("storing fast resume"); BEncodedList list = new BEncodedList(); foreach (Download t in Torrents) list.Add(t.SaveFastResume().Encode ()); File.WriteAllBytes(Defines.SerializedFastResume, list.Encode()); } catch (Exception ex) { logger.Warn (string.Format("Couldn't store fast resume: {0}", ex)); } }
public byte[] SaveNodes() { var details = new BEncodedList(); MainLoop.QueueWait(() => { foreach (var bucket in RoutingTable.Buckets) { foreach (var node in bucket.Nodes) if (node.State != NodeState.Bad) details.Add(node.CompactNode()); if (bucket.Replacement != null) if (bucket.Replacement.State != NodeState.Bad) details.Add(bucket.Replacement.CompactNode()); } }); return details.Encode(); }
public void SaveState() { BEncodedList list = new BEncodedList(); foreach (TorrentManagerAdapter adapter in this.downloaders.Values) { TorrentData d = new TorrentData(); d.FastResume = adapter.Manager.SaveFastResume(); d.SavePath = adapter.Manager.SavePath; d.Settings = adapter.Manager.Settings; d.TorrentPath = adapter.Manager.Torrent.TorrentPath; list.Add(d.Serialize()); } System.IO.File.WriteAllBytes(System.IO.Path.Combine(StoragePath, SettingsFile), list.Encode()); }