Class: QuartzTorrent::Extended

Inherits:
PeerWireMessage show all
Defined in:
lib/quartz_torrent/peermsg.rb

Overview

Extended message. These are extra messages not defined in the base protocol.

Direct Known Subclasses

ExtendedHandshake, ExtendedMetaInfo

Constant Summary

Constants inherited from PeerWireMessage

PeerWireMessage::MessageBitfield, PeerWireMessage::MessageCancel, PeerWireMessage::MessageChoke, PeerWireMessage::MessageExtended, PeerWireMessage::MessageHave, PeerWireMessage::MessageInterested, PeerWireMessage::MessageKeepAlive, PeerWireMessage::MessagePiece, PeerWireMessage::MessageRequest, PeerWireMessage::MessageUnchoke, PeerWireMessage::MessageUninterested

Instance Attribute Summary collapse

Attributes inherited from PeerWireMessage

#messageId

Instance Method Summary collapse

Methods inherited from PeerWireMessage

#length

Constructor Details

#initializeExtended

Returns a new instance of Extended.



332
333
334
# File 'lib/quartz_torrent/peermsg.rb', line 332

def initialize
  super(MessageExtended)
end

Instance Attribute Details

#extendedMessageIdObject

Returns the value of attribute extendedMessageId.



336
337
338
# File 'lib/quartz_torrent/peermsg.rb', line 336

def extendedMessageId
  @extendedMessageId
end

Instance Method Details

#payloadLengthObject



338
339
340
# File 'lib/quartz_torrent/peermsg.rb', line 338

def payloadLength
  1 + extendedMsgPayloadLength
end

#serializeTo(io) ⇒ Object



346
347
348
349
# File 'lib/quartz_torrent/peermsg.rb', line 346

def serializeTo(io)
  super(io)
  io.write [@extendedMessageId].pack("C")
end

#to_sObject



351
352
353
354
# File 'lib/quartz_torrent/peermsg.rb', line 351

def to_s
  s = super
  s + ": extendedMessageId=#{@extendedMessageId}"
end

#unserialize(payload) ⇒ Object



342
343
344
# File 'lib/quartz_torrent/peermsg.rb', line 342

def unserialize(payload)
  @extendedMessageId = payload.unpack("C")
end