class QuartzTorrent::Peer

Attributes

amChoked[RW]
amInterested[RW]
bitfield[RW]
downloadRate[RW]
downloadRateDataOnly[RW]
firstEstablishTime[RW]
infoHash[RW]
isUs[RW]
maxRequestedBlocks[RW]
peerChoked[RW]
peerInterested[RW]
peerMsgSerializer[RW]
requestedBlocks[RW]
requestedBlocksSizeLastPass[RW]
state[RW]
trackerPeer[RW]
uploadRate[RW]
uploadRateDataOnly[RW]

Public Class Methods

new(trackerPeer) click to toggle source
# File lib/quartz_flow/mock_client.rb, line 83
def initialize(trackerPeer)
  @trackerPeer = trackerPeer
  @amChoked = true
  @amInterested = false
  @peerChoked = true
  @peerInterested = false
  @infoHash = nil
  @state = :disconnected
  @uploadRate = 0
  @downloadRate = 0
  @uploadRateDataOnly = 0
  @downloadRateDataOnly = 0
  @bitfield = nil
  @firstEstablishTime = nil
  @isUs = false
  @requestedBlocks = {}
  @requestedBlocksSizeLastPass = nil
  @maxRequestedBlocks = 50
end

Public Instance Methods

to_h() click to toggle source
# File lib/quartz_flow/wrappers.rb, line 30
def to_h
  result = {}
  
  result[:trackerPeer] = @trackerPeer.to_h
  result[:amChoked] = @amChoked
  result[:amInterested] = @amInterested
  result[:peerChoked] = @peerChoked
  result[:peerInterested] = @peerInterested
  result[:firstEstablishTime] = @firstEstablishTime
  result[:maxRequestedBlocks] = @maxRequestedBlocks
  result[:state] = @state
  result[:isUs] = @isUs
  result[:uploadRate] = @uploadRate
  result[:downloadRate] = @downloadRate
  if @bitfield
    result[:pctComplete] = "%.2f" % (100.0 * @bitfield.countSet / @bitfield.length)
  else
    result[:pctComplete] = 0
  end

  result
end