Class: Mongo::Protocol::Serializers::BitVector Private

继承:
对象
  • 对象
显示全部
定义于:
lib/ Mongo/ 协议/bit_vector.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

用于为 MongoDB 传输协议消息定义位向量的类。

在初始化时定义序列化策略。

实例方法摘要折叠

构造函数详情

#initialize (layout) ⇒ BitVector

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

使用布局初始化 BitVector

参数:

  • 布局 ( Array< Symbol > )

    位向量中的字段大量



29
30
31
32
33
34
# File 'lib/ Mongo/ 协议/bit_vector.rb', line 29

def 初始化(布局)
  @masks = {}
  布局.each_with_index do |字段, 索引(index)|
    @masks[字段] = 2**索引(index) if 字段
  end
end

实例方法详细信息

#deserialize(buffer, _options = {}) ⇒ Array<Symbol>

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

通过根据掩码对符号进行解码来反序列化向量

参数:

  • 缓冲 ( string )

    包含要反序列化向量的缓冲区。

  • 选项 (哈希)

    此方法当前不接受任何选项。

返回:

  • ( Array< Symbol > )

    向量中包含的标志



56
57
58
59
60
61
62
63
# File 'lib/ Mongo/ 协议/bit_vector.rb', line 56

def 反序列化(缓冲, _options = {})
  向量 = 缓冲.get_int32
  flags = []
  @masks. do |flag, 掩码|
    flags << flag if 掩码  向量 != 0
  end
  flags
end

#serialize (buffer, value, _validating_keys = nil) ⇒ String

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

根据掩码对每个符号进行编码,从而对向量进行序列化

参数:

  • 缓冲 ( string )

    用于接收序列化向量的缓冲区

  • ( Array< Symbol > )

    要编码的标志数组

  • validating_keys ( true , false )

    序列化时是否应验证密钥。 此选项已弃用,不会使用。 它将在3.0版本中删除。

返回:

  • ( string )

    接收序列化向量的缓冲区



44
45
46
47
48
# File 'lib/ Mongo/ 协议/bit_vector.rb', line 44

def 序列化(缓冲, , _validating_keys = nil)
   = 0
  . { |flag|  |= @masks[flag] || 0 }
  缓冲.put_int32()
end