Class: Mongo::Protocol::Serializers::BitVector Private
- 继承:
-
对象
- 对象
- Mongo::Protocol::Serializers::BitVector
- 定义于:
- lib/ Mongo/ 协议/bit_vector.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
用于为 MongoDB 传输协议消息定义位向量的类。
在初始化时定义序列化策略。
实例方法摘要折叠
-
#deserialize (buffer, _options = {}) ⇒ 数组<Symbol>
private
通过根据掩码对符号进行解码来反序列化向量。
-
#initialize (layout) ⇒ BitVector
构造函数
private
使用布局初始化 BitVector。
-
#serialize (buffer, value, _validating_keys = nil) ⇒ String
private
根据掩码对每个符号进行编码,从而对向量进行序列化。
构造函数详情
#initialize (layout) ⇒ BitVector
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用布局初始化 BitVector
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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
通过根据掩码对符号进行解码来反序列化向量
56 57 58 59 60 61 62 63 |
# File 'lib/ Mongo/ 协议/bit_vector.rb', line 56 def 反序列化(缓冲, = {}) 向量 = 缓冲.get_int32 flags = [] @masks.每 do |flag, 掩码| flags << flag if 掩码 和 向量 != 0 end flags end |
#serialize (buffer, value, _validating_keys = nil) ⇒ String
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
根据掩码对每个符号进行编码,从而对向量进行序列化
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 |