Class: PostgresPR::StartupMessage
- Inherits:
-
Message
- Object
- Utils::ReadBuffer
- Message
- PostgresPR::StartupMessage
show all
- Defined in:
- lib/postgres-pr/message.rb
Constant Summary
Constants inherited
from Message
Message::MsgTypeMap
Instance Method Summary
collapse
Methods inherited from Message
#buffer, create, dump, fields, read, register_message_type
Instance Method Details
#dump ⇒ Object
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
|
# File 'lib/postgres-pr/message.rb', line 525
def dump
sz = @params.inject(4 + 4) {|sum, kv| sum + kv[0].size + 1 + kv[1].size + 1} + 1
buffer = Utils::WriteBuffer.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?
buffer.content
end
|
#parse(buffer) ⇒ Object
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
|
# File 'lib/postgres-pr/message.rb', line 541
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
|