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 es parte de una API privada. Se debe evitar el uso de este método 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) (valor por defecto: nil)

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



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

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 es parte de una API privada. Se debe evitar el uso de este método 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:



52
53
54
# Archivo 'lib/mongo/crypt/status.rb', línea 52

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

Detalles del método de instancia

#codeInteger

Este método es parte de una API privada. Se debe evitar el uso de este método 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



88
89
90
# Archivo 'lib/mongo/crypt/status.rb', línea 88

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

#labelSymbol

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la etiqueta del estado

Devuelve:

  • (Símbolo)

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



81
82
83
# Archivo 'lib/mongo/crypt/status.rb', línea 81

def Etiqueta
  Vinculante.mongocrypt_status_type(@status)
end

#mensajestring

Este método es parte de una API privada. Se debe evitar el uso de este método 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 un string vacío



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

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

#ok?Boolean

Este método es parte de una API privada. Se debe evitar el uso de este método 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



103
104
105
# Archivo 'lib/mongo/crypt/status.rb', línea 103

def ok?
  Vinculante.mongocrypt_status_ok(@status)
end

#raise_crypt_error(kms: false) ⇒ Object

Este método es parte de una API privada. Se debe evitar el uso de este método 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.



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

def raise_crypt_error(KMS: false)
  return si ok?

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

  propagar Error
end

#refFFI::Pointer

Este método es parte de una API privada. Se debe evitar el uso de este método 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 objeto subyacente mongocrypt_status_t



111
112
113
# Archivo 'lib/mongo/crypt/status.rb', línea 111

def ref
  @status
end

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

Este método es parte de una API privada. Se debe evitar el uso de este método 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 (Integer)
  • mensaje (string)

Devuelve:



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

def update(Etiqueta, Código, mensaje)
  a menos que %i[Ok error_del_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_client, :error_kms'
    )
  end

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

  sí mismo
end