类:Mongo::Protocol::CachingHash Private

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

Overview

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

缓存 #to_bson 结果的哈希。

实例方法摘要折叠

构造函数详情

#初始化(哈希) ⇒ CachingHash

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

返回 CachingHash 的新实例。



26
27
28
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/caching_hash.rb', 第26行

def 初始化(哈希)
  @hash = 哈希
end

实例方法详细信息

# bson_type对象

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



30
31
32
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/caching_hash.rb', 第30行

def bson_type
  哈希::BSON_TYPE
end

# to_bson (buffer = BSON::ByteBuffer.new, validating_keys = nil) ⇒ BSON::ByteBuffer

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

缓存 to_bson 的结果,并在后续调用此方法时将其写入给定缓冲区。 如果最初调用此方法时未进行验证,而随后调用时进行了验证,则需要重新计算 to_bson 来trigger验证。

参数:

  • 缓冲 ( BSON::ByteBuffer ) (默认为: BSON::ByteBuffer.new

    要附加到的已编码BSON缓冲区。

  • validating_keys ( true , false ) (默认为: nil

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

返回:

  • ( BSON::ByteBuffer )

    包含已编码对象的缓冲区。



44
45
46
47
48
49
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/caching_hash.rb', 第44行

def to_bson(缓冲 = BSON::ByteBuffer.new, validating_keys = nil)
  if !@bytes
    @bytes = @hash.to_bson(BSON::ByteBuffer.new).to_s
  end
  缓冲.put_bytes(@bytes)
end