class BitGirder::Event::Testing::TestCodec
Public Instance Methods
decode_event( io, len )
click to toggle source
# File lib/bitgirder/event/testing.rb, line 61 def decode_event( io, len ) ev_buf_len = len - 4 case cd = @conv.read_int32( io.read( 4 ) ) when Int32Event::TYPE_CODE Int32Event.from_i( @conv.read_int32( io.read( 4 ) ) ) when BufferEvent::TYPE_CODE BufferEvent.new( Io.read_full( io, ev_buf_len ) ) else raise sprintf( "Unexpected type code: %04x", cd ) end end
encode_event( ev, io )
click to toggle source
# File lib/bitgirder/event/testing.rb, line 44 def encode_event( ev, io ) if ev.is_a?( DelayEvent ) sleep( ev.delay ) ev = ev.event end io.write( @conv.write_int32( ev.class::TYPE_CODE ) ) case ev when Int32Event then io.write( @conv.write_int32( ev.i ) ) when BufferEvent then io.write( ev.buf ) else raise TypeError.new( "Unrecognized event: #{ev.class}" ) end end
Private Instance Methods
impl_initialize()
click to toggle source
# File lib/bitgirder/event/testing.rb, line 39 def impl_initialize @conv = BinaryConverter.new( :order => Io::ORDER_LITTLE_ENDIAN ) end