本文整理汇总了C#中BEncodedList.Encode方法的典型用法代码示例。如果您正苦于以下问题:C# BEncodedList.Encode方法的具体用法?C# BEncodedList.Encode怎么用?C# BEncodedList.Encode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BEncodedList
的用法示例。
在下文中一共展示了BEncodedList.Encode方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SaveFastResume
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());
}
示例2: SaveNodes
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();
}
示例3: benListEncoding
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()));
}
示例4: benListEncodingBuffered
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));
}
示例5: benListEncoding
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()));
}
示例6: SaveNodes
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();
}
示例7: SaveNodes
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();
}
示例8: SaveState
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 ());
}
示例9: saveFastResume
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());
}
示例10: StoreFastResume
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));
}
}
示例11: SaveFastResume
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 ());
}