Class: XGen::Mongo::Driver::MessageHeader

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo/message/message_header.rb

Constant Summary collapse

HEADER_SIZE =
16

Instance Method Summary collapse

Constructor Details

#initializeMessageHeader

Returns a new instance of MessageHeader.



30
31
32
# File 'lib/mongo/message/message_header.rb', line 30

def initialize()
  @buf = ByteBuffer.new
end

Instance Method Details

#dumpObject



49
50
51
# File 'lib/mongo/message/message_header.rb', line 49

def dump
  @buf.dump
end

#read_header(db) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/mongo/message/message_header.rb', line 34

def read_header(db)
  @buf.rewind
  read = db.receive_full(HEADER_SIZE)
  @buf.put_array(read.unpack("C*"))
  LOG.debug "header: #{read.inspect}\n"
  raise "BAD SIZE" unless read.length == HEADER_SIZE
  raise "Short read for DB response header: expected #{HEADER_SIZE} bytes, saw #{@buf.size}" unless @buf.size == HEADER_SIZE
  @buf.rewind
  @size = @buf.get_int
  @request_id = @buf.get_int
  @response_to = @buf.get_int
  @op = @buf.get_int
  self
end