class PostgresPR::StartupMessage
Public Instance Methods
dump()
click to toggle source
# File lib/postgres-pr/message.rb, line 493 def dump params = @params.reject{|k,v| v.nil?} sz = params.inject(4 + 4) {|sum, kv| sum + kv[0].size + 1 + kv[1].size + 1} + 1 buffer = Buffer.of_size(sz) buffer.write_int32_network(sz) buffer.write_int32_network(@proto_version) params.each_pair {|key, value| buffer.write_cstring(key) buffer.write_cstring(value) } buffer.write_byte(0) raise DumpError unless buffer.at_end? return buffer.content end
parse(buffer)
click to toggle source
# File lib/postgres-pr/message.rb, line 510 def parse(buffer) buffer.position = 4 @proto_version = buffer.read_int32_network @params = {} while buffer.position < buffer.size-1 key = buffer.read_cstring val = buffer.read_cstring @params[key] = val end nul = buffer.read_byte raise ParseError unless nul == 0 raise ParseError unless buffer.at_end? end