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

继承:
对象
  • 对象
显示全部
定义于:
构建/ruby-driver-v2.19/lib/ mongo / 协议/bit_vector.rb

Overview

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

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

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

实例方法摘要折叠

构造函数详情

#initialize (layout) ⇒ BitVector

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

使用布局初始化 BitVector

参数:

  • 布局 ( Array< Symbol > )

    位向量中的字段大量



31
32
33
34
35
36
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/bit_vector.rb', 第31行

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

实例方法详细信息

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

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

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

参数:

  • 缓冲 ( string )

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

  • 选项 哈希 (默认为: {}

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

返回:

  • ( Array< Symbol > )

    向量中包含的标志



58
59
60
61
62
63
64
65
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/bit_vector.rb', 第58行

def 反序列化(缓冲, 选项 = {})
  向量 = 缓冲.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 ) (默认为: nil

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

返回:

  • ( string )

    接收序列化向量的缓冲区



46
47
48
49
50
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 协议/bit_vector.rb', 第46行

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