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