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. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Un envoltorio alrededor de mongocrypt_status_t, que representa el estado de un identificador mongocrypt_t.

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

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 de estado con un puntero, es

Crear un nuevo objeto de estado

Se recomienda que utilice el método #self.from_pointer

Parámetros:

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

    Un puntero a un objeto mongocrypt_status_t existente. El valor predeterminado es nulo.



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
  # destruyendo ese puntero y desasignando datos.
  #
  # FFI::AutoPointer utiliza una estrategia de liberación personalizada para liberar automáticamente
  # el puntero una vez que este objeto sale del ámbito
  @status = puntero || FFI::Puntero automático.Nuevo(
                        Vinculante.estado de mongocrypt_nuevo,
                        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.

Inicializar un objeto de estado desde un puntero existente a un objeto mongocrypt_status_t.

Parámetros:

  • puntero (FFI::Puntero)

    Un puntero a un objeto mongocrypt_status_t existente

Devuelve:



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

def yo.desde_puntero(puntero)
  yo.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.

Devuelve el código entero asociado con el estado

Devuelve:

  • (Entero)

    El código de estado predeterminado 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, tiene como valor predeterminado :ok



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

def etiqueta
  Vinculante.mongocrypt_status_type(@status)
end

#mensajeCadena

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:

  • (Cadena) -

    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.mensaje de estado de mongocrypt(@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 está etiquetado como :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: falso) ⇒ Objeto

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 podría provenir de un KMS. El parámetro kms simplemente obliga a que todos los errores se traten como errores de KMS.

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

¿No hace nada si self.ok? es verdadero

Parámetros:

  • kilómetros (true | false) (predeterminado: falso)

    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 error de cifrado(kilómetros: false)
  return Si ok?

  Si kilómetros || 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::Puntero

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 mongocrypt_status_t subyacente

Devuelve:

  • (FFI::Puntero)

    Puntero al proyecto mongocrypt_status_t subyacente



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

def ref
  @status
end

#actualización(etiqueta, código, mensaje) ⇒ 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.

Establezca una etiqueta, un código y un mensaje en el Estado

Parámetros:

  • etiqueta ( Símbolo) -

    Uno de :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 no ser que [:OK, :error_cliente, :error_kms].¿incluir?(etiqueta)
    propagar ArgumentError.Nuevo(
      "#{label} es un valor no válido para una etiqueta Mongo::Crypt::Status. " +
      "Laetiqueta 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)

  yo
end