class Mingle::Io::Stream::Connection
Public Instance Methods
read_message()
click to toggle source
# File lib/mingle/io/stream.rb, line 72 def read_message @dec.expect_version( MESSAGE_VERSION1, "message" ) @dec.expect_type_code( TYPE_CODE_HEADERS ) hdrs = @dec.read_headers @dec.expect_type_code( TYPE_CODE_MESSAGE_BODY ) body = read_body Message.new( :headers => hdrs, :body => body ) end
write_message( msg )
click to toggle source
# File lib/mingle/io/stream.rb, line 55 def write_message( msg ) msg = Message.as_instance( msg ) @enc.write_int32( MESSAGE_VERSION1 ) write_headers( msg.headers ) write_body( msg.body ) @writer.flush end
Private Instance Methods
impl_initialize()
click to toggle source
# File lib/mingle/io/stream.rb, line 33 def impl_initialize @enc = Io::Encoder.new( @writer ) @dec = Io::Decoder.new( @reader ) end
read_body()
click to toggle source
# File lib/mingle/io/stream.rb, line 66 def read_body sz = @dec.read_int64 @dec.read_full( sz ) end
write_body( body )
click to toggle source
# File lib/mingle/io/stream.rb, line 47 def write_body( body ) @enc.write_int32( TYPE_CODE_MESSAGE_BODY ) @enc.write_int64( sz = body.bytesize ) @writer.write( body ) unless sz == 0 end
write_headers( hdrs )
click to toggle source
# File lib/mingle/io/stream.rb, line 40 def write_headers( hdrs ) @enc.write_int32( TYPE_CODE_HEADERS ) @enc.write_headers( hdrs ) end