class QuartzTorrent::UdpTrackerAnnounceRequest
Attributes
downloaded[R]
event[R]
infoHash[RW]
ipAddress[RW]
key[RW]
left[R]
numWant[RW]
peerId[RW]
port[RW]
uploaded[R]
Public Class Methods
new(connectionId)
click to toggle source
Calls superclass method
QuartzTorrent::UdpTrackerRequest::new
# File lib/quartz_torrent/udptrackermsg.rb, line 136 def initialize(connectionId) super() @connectionId = connectionId @action = UdpTrackerMessage::ActionAnnounce @infoHash = nil @peerId = nil @downloaded = nil @left = nil @uploaded = nil @event = nil # 0 means allow tracker to assume the sender's IP address is the one it's looking for # http://www.rasterbar.com/products/libtorrent/udp_tracker_protocol.html @ipAddress = 0 @key = rand(0xffffffff) # Number of peers requested: default. @numWant = -1 @port = nil end
Public Instance Methods
downloaded=(v)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 166 def downloaded=(v) raise "The 'downloaded' field must be an integer" if ! v.is_a?(Integer) @downloaded = v end
event=(v)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 181 def event=(v) raise "The 'event' field must be an integer" if ! v.is_a?(Integer) @event = v end
left=(v)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 171 def left=(v) raise "The 'left' field must be an integer" if ! v.is_a?(Integer) @left = v end
numWant=(v)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 186 def numWant=(v) raise "The 'numWant' field must be an integer" if ! v.is_a?(Integer) @numWant = v end
port=(v)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 191 def port=(v) raise "The 'port' field must be an integer" if ! v.is_a?(Integer) @port = v end
serialize()
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 196 def serialize result = UdpTrackerMessage::packAsNetworkOrder(@connectionId, 8) result << UdpTrackerMessage::packAsNetworkOrder(@action, 4) result << UdpTrackerMessage::packAsNetworkOrder(@transactionId, 4) result << infoHash result << peerId result << UdpTrackerMessage::packAsNetworkOrder(@downloaded, 8) result << UdpTrackerMessage::packAsNetworkOrder(@left, 8) result << UdpTrackerMessage::packAsNetworkOrder(@uploaded, 8) result << UdpTrackerMessage::packAsNetworkOrder(@event, 4) result << UdpTrackerMessage::packAsNetworkOrder(@ipAddress, 4) result << UdpTrackerMessage::packAsNetworkOrder(@key, 4) result << UdpTrackerMessage::packAsNetworkOrder(@numWant, 4) result << UdpTrackerMessage::packAsNetworkOrder(@port, 2) result end
uploaded=(v)
click to toggle source
# File lib/quartz_torrent/udptrackermsg.rb, line 176 def uploaded=(v) raise "The 'uploaded' field must be an integer" if ! v.is_a?(Integer) @uploaded = v end