Sha256: 661236c00b7cc8edaacd5ec5c958cbc88c0f4e49e29a5e4ffbf36bf1130069e3

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require_relative 'header/received'
class PacketViaDMEM
  class Received < Packet

    def initialize packet, debug
      @debug                    = debug
      @type                     = :received
      @original                 = packet.dup
      @header                   = Header::Received.new
      @popped, @packet          = parse_packet packet
    end

    private

    def parse_packet pkt
      head = pkt.shift(4).join.to_i(16)

      @header.msg_type = (head & 0xf0000000) >> 28
      @header.table    = (head & 0xfff8000)  >> 15
      @header.stream   = (head & 0x7ff0)     >> 4
      @header.offset   = (head & 0xe)        >> 1
      @header.size     = (head & 0x1)        << 16

      @header.size    += pkt.shift(2).join.to_i(16) if @header.msg_type == PACKET_HEAD
      @header.port     = pkt.shift.to_i(16)
      @header.type     = pkt.shift.to_i(16)

      pop, push = 0, []
      macs = pkt.first.to_i(16) > 0 # macs, maybe...

      pop, push = get_pop_push pkt, @header.type, @header.port, macs
      popped_and_packet pkt, pop, push
    end

    PACKET = 0
    PACKET_HEAD = 1
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
packet_via_dmem-0.0.11 lib/packet_via_dmem/received.rb
packet_via_dmem-0.0.10 lib/packet_via_dmem/received.rb