Classe: Mongo::Crypt::Status Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/crypt/status.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Um wrapper em torno de mongocrypt_status_t, representando o status de um identificador mongocrypt_t.

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(pointer: nil) ➤ Status

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Ao inicializar um objeto Status com um ponteiro, é

Criar um novo objeto Status

recomendado que você use o #auto.from_pointer método

Parâmetros:

  • pointer (FFI::Pointer | nil) (padrão para: nil)

    Um ponteiro para um objeto mongocrypt_status_t existente. O padrão é nulo.



33
34
35
36
37
38
39
40
41
42
43
# Arquivo 'lib/mongo/crypt/status.rb', linha 33

def inicializar(ponteiro: nada)
  # Se um ponteiro for passado, esta classe não será responsável por
  # destruindo esse ponteiro e desalocando dados.
  #
  # O FFI::AutoPointer usa uma estratégia de liberação personalizada para liberar automaticamente
  # o ponteiro quando esse objeto sair do escopo
  @status = pointer || FFI::AutoPointer.Novo(
    Vinculação.mongocrypt_status_new,
    Vinculação.Método(:mongocrypt_status_destroy)
  )
end

Detalhes do método de classe

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize um objeto Status de um ponteiro existente para um objeto mongocrypt_status_t.

Parâmetros:

  • pointer (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t existente

Retorna:



52
53
54
# Arquivo 'lib/mongo/crypt/status.rb', linha 52

def auto.from_pointer(pointer)
  Novo(ponteiro: pointer)
end

Detalhes do método de instância

#codeinteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retornar o código inteiro associado ao status

Retorna:

  • (Inteiro)

    O código de status, padrão é 0



88
89
90
# Arquivo 'lib/mongo/crypt/status.rb', linha 88

def código
  Vinculação.mongocrypt_status_code(@status)
end

#rótuloSímbolo

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retornar o rótulo do status

Retorna:

  • (Símbolo)

    A etiqueta de status, :ok, :error_kms ou :error_client, padrão é :ok



81
82
83
# Arquivo 'lib/mongo/crypt/status.rb', linha 81

def etiqueta
  Vinculação.mongocrypt_status_type(@status)
end

#mensagemstring

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retornar a mensagem de status

Retorna:

  • (string)

    A mensagem de status, padroniza para string vazia



95
96
97
98
# Arquivo 'lib/mongo/crypt/status.rb', linha 95

def mensagem
  mensagem = Vinculação.mongocrypt_status_message(@status, nada)
  mensagem || ''
end

#ok?Booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Verifica se o status está rotulado como :ok

Retorna:

  • (Booleano)

    Se o status é :ok



103
104
105
# Arquivo 'lib/mongo/crypt/status.rb', linha 103

def tudo bem?
  Vinculação.mongocrypt_status_ok(@status)
end

#create_crypt_error(KMS: false) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Se o parâmetro KMS for falso, o erro ainda pode ter origem em um KMS. O parâmetro KMS simplesmente força todos os erros a serem tratados como erros KMS .

Cria um Mongo::Error:CryptError correspondente às informações armazenadas neste status

Não faz nada se self.ok? é verdade

Parâmetros:

  • KMS (verdadeiro | falso) (padrão para: false)

    Se a operação era contra o KMS.



125
126
127
128
129
130
131
132
133
134
135
# Arquivo 'lib/mongo/crypt/status.rb', linha 125

def create_crypt_error(KMS: false)
  Método se tudo bem?

  Erro = se KMS || etiqueta == :error_kms
            Erro::KmsError.Novo(mensagem, código: código)
          mais
            Erro::Criptografia de erro.Novo(mensagem, código: código)
          end

  aumentar Erro
end

#refFFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna a referência ao objeto mongocrypt_status_t subjacente

Retorna:

  • (FFI::Pointer)

    Ponteiro para o objeto mongocrypt_status_t subjacente



111
112
113
# Arquivo 'lib/mongo/crypt/status.rb', linha 111

def ref
  @status
end

#update(label, code, message) ➤ Mongo::Crypt::Status

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Definir um rótulo, código e mensagem no Status

Parâmetros:

  • etiqueta (Símbolo)

    Um de :ok, :error_client ou :error_kms

  • código (Inteiro)
  • mensagem (string)

Retorna:



63
64
65
66
67
68
69
70
71
72
73
74
75
# Arquivo 'lib/mongo/crypt/status.rb', linha 63

def update(etiqueta, código, mensagem)
  a menos que %i[OK error_client error_kms].incluir?(etiqueta)
    aumentar ArgumentError.Novo(
      "#{rótulo} é um valor inválido para um rótulo Mongo::Crypt::Status. " +
      ' Aetiqueta deve ter um dos seguintes valores::ok,:error_client,:error_kms '
    )
  end

  comprimento da mensagem = mensagem ? mensagem.bytesize + 1 : 0
  Vinculação.mongocrypt_status_set(@status, etiqueta, código, mensagem, comprimento da mensagem)

  auto
end