类:Mongo::Crypt::Status Private

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

Overview

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

mongocrypt_status_t 的包装器,表示 mongocrypt_t处理的状态。

类方法摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (pointer: nil) ⇒状态

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

注意:

使用指针初始化 Status对象时,

创建新的状态对象

建议您使用 #self.from_pointer 方法

参数:

  • 指针 ( FFI::Pointer | nil ) (默认为: nil

    指向现有 mongocrypt_status_t对象的指针。 默认为 nil。



35
36
37
38
39
40
41
42
43
44
45
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第35行

def 初始化(指针: nil)
  # 如果传入了指针,则该类不负责
  # 销毁该指针并释放数据。
  #
  # FFI::AutoPointer 使用自定义发布策略来自动释放
  # 当此对象超出作用域时的指针
  @status = 指针 || FFI::AutoPointer.new(
                        绑定.mongocrypt_status_new,
                        绑定.方法(:mongocrypt_status_destroy)
                      )
end

类方法详细信息

from_pointer (指针)→ Mongo::Crypt::Status

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

从指向 mongocrypt_status_t 对象的现有指针初始化状态对象。

参数:

  • 指针 ( FFI::Pointer )

    指向现有 mongocrypt_status_t对象的指针

返回:



54
55
56
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第54行

def self.from_pointer(指针)
  self.new(指针: 指针)
end

实例方法详细信息

# code整数

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

返回与状态关联的整数代码

返回:

  • ( Integer )

    状态代码,默认为0



90
91
92
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第90行

def 代码
  绑定.mongocrypt_status_code(@status)
end

#标签符号

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

返回状态的标签

返回:

  • (符号)

    状态标签可以是 :ok、:error_kms 或 :error_client,默认为 :ok



83
84
85
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第83行

def 标签
  绑定.mongocrypt_status_type(@status)
end

# messagestring

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

返回状态消息

返回:

  • ( string )

    状态消息,默认为空string



97
98
99
100
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第97行

def message
  message = 绑定.mongocrypt_status_message(@status, nil)
  message || ' '
end

#可以吗?布尔

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

检查状态是否标记为 :ok

返回:

  • ( Boolean )

    状态是否为 :ok



105
106
107
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第105行

def 确定吗?
  绑定.mongocrypt_status_ok(@status)
end

# Raise_crypt_error ( KMS : false) ⇒对象

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

注意:

如果KMS参数为 false,则错误可能仍来自KMS 。 KMS参数只是强制将所有错误视为KMS错误。

引发与此状态中存储的信息相对应的 Mongo::Error:CryptError

如果 self.ok? 则不执行任何操作为 true

参数:

  • KMS ( true | false ) (默认为: false

    操作是否针对KMS。



127
128
129
130
131
132
133
134
135
136
137
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第127行

def Raise_crypt_error(KMS : false)
  return if 确定吗?

  if KMS || 标签 == :error_kms
    错误 = 错误::KmsError.new(message, 代码: 代码)
  else
    错误 = 错误::CryptError.new(message, 代码: 代码)
  end

  提高 错误
end

# refFFI::Pointer

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

返回对根本的mongocrypt_status_t对象的引用

返回:

  • ( FFI::Pointer )

    指向根本的mongocrypt_status_t oject 的指针



113
114
115
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第113行

def ref
  @status
end

# 更新 (label, code, message) ⇒ Mongo::Crypt::Status

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

在状态上设置标签、代码和消息

参数:

  • 标签 (符号)

    :ok、:error_client 或 :error_kms 之一

  • 代码 整数
  • message string

返回:



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/status.rb', 第65行

def update(标签, 代码, message)
  除非 [:ok, :error_client, :error_kms].包括?(标签)
    提高 ArgumentError.new(
      " #{ label }对于 Mongo::Crypt::Status 标签来说是无效值。 " +
      "标签必须为以下值之一::ok, :error_client, :error_kms "
    )
  end

  message_length = message ? message.bytesize + 1 : 0
  绑定.mongocrypt_status_set(@status, 标签, 代码, message, message_length)

  self
end