Class: PostgresPR::DataRow

Inherits:
Message
  • Object
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

#dumpObject



286
287
288
289
290
291
292
293
294
295
# File 'lib/postgres-pr/message.rb', line 286

def dump
  sz = @columns.inject(2) {|sum, col| sum + 4 + (col ? col.size : 0)}
  super(sz) do |buffer|
    buffer.write_int16_network(@columns.size)
    @columns.each {|col|
      buffer.write_int32_network(col ? col.size : -1)
      buffer.write(col) if col
    }
  end
end

#parse(buffer) ⇒ Object



297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
# File 'lib/postgres-pr/message.rb', line 297

def parse(buffer)
  super do
    columns = []
    n_cols = buffer.read_int16_network
    while n_cols > 0
      len = buffer.read_int32_network 
      if len == -1
        columns << nil
      else
        columns << buffer.read(len)
      end
      n_cols -= 1
    end
    @columns = columns
  end
end