class PacketGen::Types::Int24

3-byte unsigned integer @author Sylvain Daubert @since 2.1.4

Public Class Methods

new(value=nil, endian=:big) click to toggle source

@param [Integer,nil] value @param [:big, :little] endian

Calls superclass method PacketGen::Types::Int::new
# File lib/packetgen/types/int.rb, line 187
def initialize(value=nil, endian=:big)
  super(value, endian, 3)
end

Public Instance Methods

read(value) click to toggle source

Read an 3-byte Int from a binary string or an integer @param [Integer, String] value @return [self]

# File lib/packetgen/types/int.rb, line 194
def read(value)
  return self if value.nil?

  @value = if value.is_a?(Integer)
             value.to_i
           else
             up8 = down16 = 0
             if @endian == :big
               up8, down16 = value.to_s.unpack('Cn')
             else
               down16, up8 = value.to_s.unpack('vC')
             end
             (up8 << 16) | down16
           end
  self
end
to_s() click to toggle source

@return [::String]

# File lib/packetgen/types/int.rb, line 212
def to_s
  up8 = to_i >> 16
  down16 = to_i & 0xffff
  if @endian == :big
    [up8, down16].pack('Cn')
  else
    [down16, up8].pack('vC')
  end
end