Module: PG::Replication::Protocol

Defined in:
lib/pg/replication/protocol.rb

Constant Summary collapse

XLogData =
Data.define(:lsn, :current_lsn, :server_time, :data)
PrimaryKeepalive =
Data.define(:current_lsn, :server_time, :asap)

Class Method Summary collapse

Class Method Details

.read_message(buffer) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/pg/replication/protocol.rb', line 9

def self.read_message(buffer)
  case buffer.read_char
  in "k"
    PrimaryKeepalive.new(
      current_lsn: buffer.read_int64,
      server_time: buffer.read_timestamp,
      asap: buffer.read_bool,
    )

  in "w"
    XLogData.new(
      lsn: buffer.read_int64,
      current_lsn: buffer.read_int64,
      server_time: buffer.read_timestamp,
      data: buffer.read,
    )

  in unknown
    raise "Unknown replication message type: #{unknown}"
  end
end