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