类:Mongo::Crypt::Status Private
- 继承:
-
对象
- 对象
- Mongo::Crypt::Status
- 定义于:
- lib/ Mongo/crypt/status.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
mongocrypt_status_t 的包装器,表示 mongocrypt_t处理的状态。
类方法摘要折叠
-
。 from_pointer (指针)→ Mongo::Crypt::Status
private
从指向 mongocrypt_status_t 对象的现有指针初始化状态对象。
实例方法摘要折叠
-
# code ⇒ 整数
private
返回与状态关联的整数代码。
-
#initialize (pointer: nil) ⇒ 状态
构造函数
private
创建一个新的状态对象。
-
#label ⇒ Symbol
private
返回状态的标签。
-
# message ⇒ string
private
返回状态消息。
-
#可以吗? ⇒ 布尔
private
检查状态是否标记为 :ok。
-
# Raise_crypt_error ( KMS : false) ⇒ 对象
private
引发与此状态中存储的信息相对应的 Mongo::Error:CryptError。
-
# ref ⇒ FFI::Pointer
private
返回对根本的mongocrypt_status_t对象的引用。
-
# 更新 (label, code, message) ⇒ Mongo::Crypt::Status
private
在状态上设置标签、代码和消息。
构造函数详情
#initialize (pointer: nil) ⇒状态
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用指针初始化 Status对象时,
创建新的状态对象
建议您使用 #self.from_pointer 方法
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/ Mongo/crypt/status.rb', line 33 def 初始化(指针: nil) # 如果传入了指针,则该类不负责 # 销毁该指针并释放数据。 # # FFI::AutoPointer 使用自定义发布策略来自动释放 # 当此对象超出作用域时的指针 @status = 指针 || FFI::AutoPointer.new( 绑定.mongocrypt_status_new, 绑定.方法(:mongocrypt_status_destroy) ) end |
类方法详细信息
。 from_pointer (指针)→ Mongo::Crypt::Status
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
从指向 mongocrypt_status_t 对象的现有指针初始化状态对象。
52 53 54 |
# File 'lib/ Mongo/crypt/status.rb', line 52 def self.from_pointer(指针) new(指针: 指针) end |
实例方法详细信息
# code ⇒整数
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回与状态关联的整数代码
88 89 90 |
# File 'lib/ Mongo/crypt/status.rb', line 88 def 代码 绑定.mongocrypt_status_code(@status) end |
#标签⇒符号
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回状态的标签
81 82 83 |
# File 'lib/ Mongo/crypt/status.rb', line 81 def 标签 绑定.mongocrypt_status_type(@status) end |
# message ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回状态消息
95 96 97 98 |
# File 'lib/ Mongo/crypt/status.rb', line 95 def = 绑定.(@status, nil) || ' ' end |
#可以吗? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
检查状态是否标记为 :ok
103 104 105 |
# File 'lib/ Mongo/crypt/status.rb', line 103 def 确定吗? 绑定.mongocrypt_status_ok(@status) end |
# Raise_crypt_error ( KMS : false) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
如果KMS参数为 false,则错误可能仍来自KMS 。 KMS参数只是强制将所有错误视为KMS错误。
引发与此状态中存储的信息相对应的 Mongo::Error:CryptError
如果 self.ok? 则不执行任何操作为 true
125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/ Mongo/crypt/status.rb', line 125 def Raise_crypt_error(KMS : false) return if 确定吗? 错误 = if KMS || 标签 == :error_kms 错误::KmsError.new(, 代码: 代码) else 错误::CryptError.new(, 代码: 代码) end 提高 错误 end |
# ref ⇒ FFI::Pointer
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回对根本的mongocrypt_status_t对象的引用
111 112 113 |
# File 'lib/ Mongo/crypt/status.rb', line 111 def ref @status end |
# 更新 (label, code, message) ⇒ Mongo::Crypt::Status
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
在状态上设置标签、代码和消息
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/ Mongo/crypt/status.rb', line 63 def update(标签, 代码, ) 除非 %i[Ok error_client error_kms].包括?(标签) 提高 ArgumentError.new( " #{ label }对于 Mongo::Crypt::Status 标签来说是无效值。 " + '标签必须为以下值之一::ok,:error_client,:error_kms' ) end = ? .bytesize + 1 : 0 绑定.mongocrypt_status_set(@status, 标签, 代码, , ) self end |