Classe: Mongo::Crypt::Status Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/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.



35
36
37
38
39
40
41
42
43
44
45
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 35

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:



54
55
56
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 54

def auto.from_pointer(pointer)
  auto.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



90
91
92
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 90

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



83
84
85
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 83

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



97
98
99
100
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 97

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



105
106
107
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 105

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.



127
128
129
130
131
132
133
134
135
136
137
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 127

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

  se KMS || etiqueta == :error_kms
    Erro = Erro::KmsError.Novo(mensagem, código: código)
  mais
    Erro = 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



113
114
115
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 113

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:



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/status.rb', linha 65

def update(etiqueta, código, mensagem)
  a menos que [:ok, :error_client, :error_kms].incluir?(etiqueta)
    aumentar ArgumentError.Novo(
      "#{rótulo} é um valor inválido para um rótulo Mongo::Crypt::Status. " +
      "O rótulo 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