class Ciri::P2P::ProtocolIO

send/read sub protocol msg

Attributes

offset[R]
protocol[R]

Public Class Methods

new(protocol, offset, frame_io) click to toggle source
# File lib/ciri/p2p/protocol_io.rb, line 41
def initialize(protocol, offset, frame_io)
  @protocol = protocol
  @offset = offset
  @frame_io = frame_io
  @semaphore = Async::Semaphore.new
end

Public Instance Methods

send_data(code, data) click to toggle source
# File lib/ciri/p2p/protocol_io.rb, line 48
def send_data(code, data)
  @semaphore.acquire do
    msg = RLPX::Message.new(code: code, size: data.size, payload: data)
    write_msg(msg)
  end
end
write_msg(msg) click to toggle source
# File lib/ciri/p2p/protocol_io.rb, line 55
def write_msg(msg)
  raise InvalidMessageCode, "code #{msg.code} must less than length #{protocol.length}" if msg.code > protocol.length
  msg.code += offset
  @frame_io.write_msg(msg)
end