Classe: Mongo::Operação::Context Privado

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

Contexto para operações.

Contém vários objetos necessários para tomar decisões sobre a execução da operação em um único container e fornece métodos de máscara para os objetos contidos.

O contexto contém parâmetros para operações e, como tal, enquanto uma operação está sendo preparada, nada no contexto deve mudar. Quando o resultado da operação está sendo processado, os dados retornados pelo contexto podem mudar (por exemplo, porque uma transação foi cancelada), mas nesse ponto a operação não deve mais ler nada do contexto. Como os dados de contexto podem mudar durante a execução da operação, os objetos de contexto não devem ser reutilizados para várias operações.

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(cliente: nil, sessão: nil, connection_global_id: nil, opções: nil) ➤ Context

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 uma nova instância de Contexto.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 38

def inicializar(cliente: nada, sessão: nada, connection_global_id: nada, opções: nada)
  se opções
    se Cliente
      aumentar ArgumentError, 'O cliente e as opções não podem ser especificados'
    end

    se session
      aumentar ArgumentError, ' Asessão e as opções não podem ser especificadas'
    end
  end

  se connection_global_id && session&.pinned_connection_global_id
    aumentar ArgumentError, 'Tentando fixar contexto em uma conexão quando a sessão já está fixada em uma conexão.'
  end

  @cliente = Cliente
  @session = session
  @connection_global_id = connection_global_id
  @opções = opções
end

Detalhes do atributo da instância

# objeto do cliente(somente leitura)

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.



59
60
61
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 59

def Cliente
  @cliente
end

#opções Objeto (somente leitura)

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.



61
62
63
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 61

def opções
  @opções
end

#sessionObject (somente leitura)

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.



60
61
62
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 60

def session
  @session
end

Detalhes do método de instância

#aborting_transaction?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.

Retorna:

  • (Booleano)


79
80
81
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 79

def aborting_transaction?
  in_transaction? && session.aborting_transaction?
end

#any_retry_writes?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.

Retorna:

  • (Booleano)


91
92
93
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 91

def any_retry_writes?
  mod_retry_writes? || legacy_retry_writes?
end

#commit_transaction?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.

Retorna:

  • (Booleano)


75
76
77
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 75

def commit_transaction?
  in_transaction? && session.commit_transaction?
end

#connection_global_idObjeto

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.



63
64
65
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 63

def connection_global_id
  @connection_global_id || session&.pinned_connection_global_id
end

#descriptografar?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.

Retorna:

  • (Booleano)


125
126
127
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 125

def descriptografar?
  !!Cliente&.criptografador
end

#criptografar?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.

Retorna:

  • (Booleano)


121
122
123
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 121

def criptografar?
  Cliente&.criptografador&.criptografar? || false
end

#criptografadorObjeto

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.



129
130
131
132
133
134
135
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 129

def criptografador
  se Cliente&.criptografador
    Cliente.criptografador
  mais
    aumentar Erro::InternalDriverError, ' Ocriptografador só deve ser acessado quando a criptografia deve ser executada'
  end
end

#in_transaction?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.

Retorna:

  • (Booleano)


67
68
69
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 67

def in_transaction?
  session&.in_transaction? || false
end

#legacy_retry_writes?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.

Retorna:

  • (Booleano)


87
88
89
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 87

def legacy_retry_writes?
  Cliente && !Cliente.opções[:retry_writes] && Cliente.max_write_retry > 0
end

#mod_retry_writes?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.

Retorna:

  • (Booleano)


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

def mod_retry_writes?
  Cliente && Cliente.opções[:retry_writes]
end

#tentar novamente?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.

Se a operação é uma nova tentativa (true) ou uma tentativa inicial (false).

Retorna:

  • (Booleano)


104
105
106
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 104

def tentar novamente?
  !!@is_retry
end

#server_api ➤ 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.



95
96
97
98
99
100
101
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 95

def server_api
  se Cliente
    Cliente.opções[:server_api]
  elsif opções
    opções[:server_api]
  end
end

#initial_transaction?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.

Retorna:

  • (Booleano)


71
72
73
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 71

def initial_transaction?
  session&.initial_transaction? || false
end

#com(**opts) ➤ 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.

Retorna um novo contexto com os parâmetros alterados de acordo com os argumentos fornecidos.

Parâmetros:

  • opciona (Hash)

    um conjunto personalizável de opções

Hash de opções (**opts):

  • :is_retry (true|false)

    Se a operação é uma nova tentativa ou uma primeira tentativa.



113
114
115
116
117
118
119
# File 'build/ruby-driver-v2.19/lib/mongo/operation/context.rb', linha 113

def com(**opciona)
  dup.toque fazer |copy|
    opciona.cada fazer |k, v|
      copy.instance_variable_set("@#{k}", v)
    end
  end
end