Clase: Mongo::Crypt::Status Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/crypt/status.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Un contenedor alrededor de mongocrypt_status_t, que representa el estado de un manejador mongocrypt_t.

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Detalles del constructor

#initialize(pointer: nil) ⇒ Status

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Al inicializar un objeto Status con un puntero, es

Crear un nuevo objeto Estado

se recomienda utilizar el #self.from_pointer método

Parámetros:

  • puntero (FFI::Pointer | nil) (predeterminado: nulo)

    Un puntero a un objeto mongocrypt_status_t existente. Por defecto, nil.



35
36
37
38
39
40
41
42
43
44
45
# Archivo 'lib/mongo/crypt/status.rb', línea 35

def inicializar(puntero: nulo)
  # Si se pasa un puntero, esta clase no es responsable de
  # destruir ese puntero y desalojar datos.
  #
  # FFI::AutoPointer utiliza una estrategia de liberación personalizada para liberar automáticamente
  # el puntero una vez que este objeto salga del alcance
  @status = puntero || FFI::Apuntador automático.Nuevo(
                        Vinculante.mongocrypt_status_new,
                        Vinculante.Método(:mongocrypt_status_destroy)
                      )
end

Detalles del método de clase

.from_pointer(pointer) ⇒ Mongo::Crypt::Status

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializa un objeto status desde un puntero existente a un objeto mongocrypt_status_t.

Parámetros:

  • puntero (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t existente

Devuelve:



54
55
56
# Archivo 'lib/mongo/crypt/status.rb', línea 54

def sí mismo.from_pointer(puntero)
  sí mismo.Nuevo(puntero: puntero)
end

Detalles del método de instancia

#codeInteger

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelva el código numérico asociado con el estado.

Devuelve:

  • (Número entero)

    El código de estado, por defecto es 0



90
91
92
# Archivo 'lib/mongo/crypt/status.rb', línea 90

def Código
  Vinculante.mongocrypt_status_code(@status)
end

#labelSymbol

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devolver la etiqueta del estado

Devuelve:

  • (Símbolo)

    La etiqueta de estado, ya sea :ok, :error_kms o :error_client, por defecto es :ok



83
84
85
# Archivo 'lib/mongo/crypt/status.rb', línea 83

def etiqueta
  Vinculante.mongocrypt_status_type(@status)
end

#mensajestring

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devolver el mensaje de estado

Devuelve:

  • (string)

    El mensaje de estado, por defecto, es una cadena vacía.



97
98
99
100
# Archivo 'lib/mongo/crypt/status.rb', línea 97

def mensaje
  mensaje = Vinculante.mongocrypt_status_message(@status, nulo)
  mensaje || ''
end

#ok?Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Comprueba si el estado lleva la etiqueta: ok

Devuelve:

  • (booleano)

    Si el estado es :ok



105
106
107
# Archivo 'lib/mongo/crypt/status.rb', línea 105

def ok?
  Vinculante.mongocrypt_status_ok(@status)
end

#raise_crypt_error(kms: false) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Si el parámetro kms es falso, el error aún puede haber venido de un KMS. El parámetro kms simplemente obliga a que todos los errores se traten como errores de KMS.

Genera un error Mongo::Error:CryptError correspondiente a la información almacenada en este estado

¿No hace nada si self.ok? es verdadero

Parámetros:

  • KMS (true | false) (por defecto: false)

    Si la operación fue contra el KMS.



127
128
129
130
131
132
133
134
135
136
137
# Archivo 'lib/mongo/crypt/status.rb', línea 127

def raise_crypt_error(KMS: false)
  return si ok?

  si KMS || etiqueta == :error_kms
    Error = Error::KmsError.Nuevo(mensaje, código: Código)
  else
    Error = Error::CryptError.Nuevo(mensaje, código: Código)
  end

  propagar Error
end

#refFFI::Pointer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la referencia al objeto subyacente mongocrypt_status_t

Devuelve:

  • (FFI::Pointer)

    Puntero al proyecto mongocrypt_status_t subyacente



113
114
115
# Archivo 'lib/mongo/crypt/status.rb', línea 113

def ref
  @status
end

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Configuración de una etiqueta, código y mensaje en el Estado

Parámetros:

  • etiqueta (Símbolo)

    Uno de los siguientes: :ok, :error_client o :error_kms

  • Código (Entero)
  • mensaje (Cadena)

Devuelve:



65
66
67
68
69
70
71
72
73
74
75
76
77
# Archivo 'lib/mongo/crypt/status.rb', línea 65

def update(etiqueta, Código, mensaje)
  a menos que [ok, :error_cliente, :error_kms].incluir?(etiqueta)
    propagar ArgumentError.Nuevo(
      "#{label} es un valor no válido para una etiqueta Mongo::Crypt::Status. " +
      "La etiqueta debe tener uno de los siguientes valores: :ok, :error_cliente, :error_kms"
    )
  end

  message_length = mensaje ? mensaje.bytesize + 1 : 0
  Vinculante.mongocrypt_status_set(@status, etiqueta, Código, mensaje, message_length)

  sí mismo
end