module PostgresPR::NoticeErrorMixin

Attributes

field_type[RW]
field_values[RW]

Public Class Methods

new(field_type=0, field_values=[]) click to toggle source
# File lib/postgres-pr/message.rb, line 339
def initialize(field_type=0, field_values=[])
  raise PGError if field_type == 0 and not field_values.empty?
  @field_type, @field_values = field_type, field_values
end

Public Instance Methods

dump() click to toggle source
Calls superclass method
# File lib/postgres-pr/message.rb, line 344
def dump
  raise PGError if @field_type == 0 and not @field_values.empty?

  sz = 1 
  sz += @field_values.inject(1) {|sum, fld| sum + fld.size + 1} unless @field_type == 0 

  super(sz) do |buffer|
    buffer.write_byte(@field_type)
    break if @field_type == 0 
    @field_values.each {|fld| buffer.write_cstring(fld) }
    buffer.write_byte(0)
  end
end
parse(buffer) click to toggle source
Calls superclass method
# File lib/postgres-pr/message.rb, line 358
def parse(buffer)
  super do
    @field_type = buffer.read_byte
    break if @field_type == 0
    @field_values = []
    while buffer.position < buffer.size-1
      @field_values << buffer.read_cstring
    end
    terminator = buffer.read_byte
    raise ParseError unless terminator == 0
  end
end