class QuartzTorrent::PeerClient
Public Class Methods
new(ignored)
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 166 def initialize(ignored) @words = Words.new @torrents = {} 7.times{ addTorrent } Thread.new do while true begin @torrents.each{ |k,t| t.downloadRate += (rand(1000) - 500)} rescue puts "Exception in Mock PeerClient: #{$!}" end sleep 2 end end end
Public Instance Methods
addTorrent()
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 198 def addTorrent d = makeFakeTorrentDelegate @torrents[d.infoHash] = d end
addTorrentByMetainfo(info)
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 191 def addTorrentByMetainfo(info) end
port=(p)
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 182 def port=(p) end
start()
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 185 def start end
stop()
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 188 def stop end
torrentData(infoHash = nil)
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 194 def torrentData(infoHash = nil) @torrents end
Private Instance Methods
makeFakeTorrentDelegate()
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 204 def makeFakeTorrentDelegate result = TorrentDataDelegate.new name = "" (rand(3)+1).times do name << @words.randomWord + " " end result.recommendedName = name result.infoHash = randomBinaryData 20 result.downloadRate = 100*1024 result.uploadRate = 5*1024 result.downloadRateDataOnly = 100*1024 result.uploadRateDataOnly = 5*1024 result.completedBytes = 800 result.peers = [] result.state = :running result.paused = false result.info = Metainfo::Info.new result.info.files = [Metainfo::FileInfo.new(1000, "file1"), Metainfo::FileInfo.new(1000, "file2")] 3.times do peer = Peer.new(TrackerPeer.new("176.23.54.201", 5000)) peer.amChoked = false peer.amInterested = false peer.peerChoked = false peer.peerInterested = true peer.uploadRate = 20*1024 peer.downloadRate = 10*1024 result.peers.push peer end result end
randomBinaryData(len)
click to toggle source
# File lib/quartz_flow/mock_client.rb, line 240 def randomBinaryData(len) result = "" len.times{ result << rand(256) } result end