module Mongo::Protocol::Serializers::Int64

MongoDB wire protocol serialization strategy for 64-bit integers.

Serializes and de-serializes one 64-bit integer.

Public Class Methods

deserialize(buffer) click to toggle source

Deserializes a 64-bit Fixnum from the IO stream

@param [ String ] buffer Buffer containing the 64-bit integer.

@return [Fixnum] Deserialized Int64.

# File lib/mongo/protocol/serializers.rb, line 161
def self.deserialize(buffer)
  buffer.get_int64
end
serialize(buffer, value, validating_keys = BSON::Config.validating_keys?) click to toggle source

Serializes a number to a 64-bit integer

@param buffer [ String ] Buffer to receive the serialized Int64. @param value [ Integer | BSON::Int64 ] 64-bit integer to be serialized.

@return [ String ] Buffer with serialized value.

# File lib/mongo/protocol/serializers.rb, line 144
def self.serialize(buffer, value, validating_keys = BSON::Config.validating_keys?)
  if value.is_a?(BSON::Int64)
    if value.respond_to?(:value)
      # bson-ruby >= 4.6.0
      value = value.value
    else
      value = value.instance_variable_get('@integer')
    end
  end
  buffer.put_int64(value)
end