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.



11
12
13
# File 'lib/mongo/message/message_header.rb', line 11

def initialize()
  @buf = ByteBuffer.new
end

Instance Method Details

#dumpObject



27
28
29
# File 'lib/mongo/message/message_header.rb', line 27

def dump
  @buf.dump
end

#read_header(socket) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mongo/message/message_header.rb', line 15

def read_header(socket)
  @buf.rewind
  @buf.put_array(socket.recv(HEADER_SIZE).unpack("C*"))
  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