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