class Mingle::Io::Decoder
Public Instance Methods
expect_type_code( expct )
click to toggle source
# File lib/mingle/io.rb, line 121 def expect_type_code( expct ) unless ( act = read_type_code ) == expct tmpl = "Invalid type :code => 0x%08x (expected 0x%08x)" msg = sprintf( tmpl, act, expct ) raise InvalidTypeCodeError.new( msg ) end end
expect_version( expct, ver_typ )
click to toggle source
# File lib/mingle/io.rb, line 105 def expect_version( expct, ver_typ ) unless ( ver = read_version ) == expct tmpl = "Invalid %s :version => 0x%08x (expected 0x%08x)" msg = sprintf( tmpl, ver_typ, ver, expct ) raise InvalidVersionError.new( msg ) end end
read_headers()
click to toggle source
# File lib/mingle/io.rb, line 137 def read_headers expect_version( HEADERS_VERSION1, "headers" ) flds = {} while true do case tc = read_type_code when TYPE_CODE_HEADERS_FIELD then read_header_field( flds ) when TYPE_CODE_HEADERS_END return Headers.new( :fields => flds ) else msg = sprintf( "Unknown type :code => 0x%08x", tc ) raise InvalidTypeCodeError.new( msg ) end end end
read_type_code()
click to toggle source
# File lib/mingle/io.rb, line 116 def read_type_code read_int32 end
read_version()
click to toggle source
# File lib/mingle/io.rb, line 100 def read_version read_int32 end
Private Instance Methods
impl_initialize()
click to toggle source
# File lib/mingle/io.rb, line 95 def impl_initialize @bin = BitGirder::Io::BinaryReader.new( :order => BYTE_ORDER, :io => @reader ) end
read_header_field( flds )
click to toggle source
# File lib/mingle/io.rb, line 132 def read_header_field( flds ) flds[ read_utf8 ] = read_utf8 end