Classe: Mongo::Operação::Context Privado
- Herda:
-
CsotTimeoutHolder
- Objeto
- CsotTimeoutHolder
- Mongo::Operação::Contexto
- Definido em:
- 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
- #cliente ➤ Objeto Somente leitura privado
- #opções ➤ Objeto Somente leitura privado
- #sessão ➤ Objeto Somente leitura privado
- #view ⇒ Object Somente leitura privado
Atributos herdados de CsotTimeoutHolder
#deadline, #operation_timeouts, #timeout_sec
Recolhimento do Resumo do método de instância
- #aborting_transaction? ➤ Booleano privado
- #any_retry_writes? ➤ Booleano privado
- #commit_transaction? ➤ Booleano privado
- #connection_global_id ➤ Objeto privado
- #descriptografar(cmd) ➤ Objeto privado
- #descriptografar? ➤ Booleano privado
- #encrypt(db_name, cmd) ➤ Objeto privado
- #criptografar? ➤ Booleano privado
- #criptografador ➤ Objeto privado
- #in_transaction? ⇒ Boolean privado
-
#initialize(cliente: nil, sessão: nil, connection_global_id: nil, operation_timeouts: {}, visualizar: nil, opções: nil) ➤ Contexto
construtor
privado
Uma nova instância de Contexto.
- #inspecionar ➤ Objeto privado
- #legacy_retry_writes? ➤ Booleano privado
- #mod_retry_writes? ➤ Booleano privado
-
#overflow_only_retry? ➤ Booleano
privado
Se todas as novas tentativas até agora foram devido apenas a sobrecarga.
-
#refresh(connection_global_id: @connection_global_id, timeout_ms: nil, view: nil) ➤ Operação::Context
privado
Retorna uma nova Operação::Contexto com o prazo atualizado e relativo ao momento atual.
-
#tentar novamente? ➤ Booleano
privado
Se a operação é uma nova tentativa (true) ou uma tentativa inicial (false).
- #server_api ➤ Objeto privado
- #initial_transaction? ➤ Booleano privado
-
#com(**opts) ➤ Objeto
privado
Retorna um novo contexto com os parâmetros alterados de acordo com os argumentos fornecidos.
Métodos herdados de CsotTimeoutHolder
#check_timeout!, #csot?, #remaining_timeout_ms, #remaining_timeout_ms!, #remaining_timeout_sec, #remaining_timeout_sec!, #timeout?, #timeout_expired?
Detalhes do construtor
#initialize(cliente: nil, sessão: nil, connection_global_id: nil, operation_timeouts: {}, visualizar: nil, opções: nil) ➤ Contexto
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.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# Arquivo 'lib/mongo/operation/context.rb', linha 36 def inicializar( cliente: nada, sessão: nada, connection_global_id: nada, operation_timeouts: {}, visualizar: nada, opções: nada ) se aumentar ArgumentError, 'O cliente e as opções não podem ser especificados' se Cliente aumentar ArgumentError, ' Asessão e as opções não podem ser especificadas' se session 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 @view = vista @connection_global_id = connection_global_id @opções = super(sessão: session, operation_timeouts: operation_timeouts) 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.
63 64 65 |
# Arquivo 'lib/mongo/operation/context.rb', linha 63 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.
63 64 65 |
# Arquivo 'lib/mongo/operation/context.rb', linha 63 def @opções end |
#session ➤ Object (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.
63 64 65 |
# Arquivo 'lib/mongo/operation/context.rb', linha 63 def session @session end |
#view ➤ Object (only read)
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 |
# Arquivo 'lib/mongo/operation/context.rb', linha 63 def vista @view 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.
97 98 99 |
# Arquivo 'lib/mongo/operation/context.rb', linha 97 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.
109 110 111 |
# Arquivo 'lib/mongo/operation/context.rb', linha 109 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.
93 94 95 |
# Arquivo 'lib/mongo/operation/context.rb', linha 93 def commit_transaction? in_transaction? && session.commit_transaction? end |
#connection_global_id ➤ 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.
81 82 83 |
# Arquivo 'lib/mongo/operation/context.rb', linha 81 def connection_global_id @connection_global_id || session&.pinned_connection_global_id end |
#descriptografar(cmd) ➤ 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.
156 157 158 |
# Arquivo 'lib/mongo/operation/context.rb', linha 156 def Descriptografar(cmd) criptografador.Descriptografar(cmd, auto) 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.
152 153 154 |
# Arquivo 'lib/mongo/operation/context.rb', linha 152 def descriptografar? !!Cliente&.criptografador end |
#encrypt(db_name, cmd) ➤ 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.
148 149 150 |
# Arquivo 'lib/mongo/operation/context.rb', linha 148 def criptografar(db_name, cmd) criptografador.criptografar(db_name, cmd, auto) 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.
144 145 146 |
# Arquivo 'lib/mongo/operation/context.rb', linha 144 def criptografar? Cliente&.criptografador&.criptografar? || false end |
#criptografador ➤ 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.
160 161 162 163 164 165 166 |
# Arquivo 'lib/mongo/operation/context.rb', linha 160 def criptografador a menos que Cliente&.criptografador aumentar Erro::InternalDriverError, ' Ocriptografador só deve ser acessado quando a criptografia deve ser executada' end Cliente.criptografador 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.
85 86 87 |
# Arquivo 'lib/mongo/operation/context.rb', linha 85 def in_transaction? session&.in_transaction? || false end |
#inspecionar ➤ 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.
168 169 170 |
# Arquivo 'lib/mongo/operation/context.rb', linha 168 def inspecionar "# [ }> " 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.
105 106 107 |
# Arquivo 'lib/mongo/operation/context.rb', linha 105 def legacy_retry_writes? Cliente && !Cliente.[: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.
101 102 103 |
# Arquivo 'lib/mongo/operation/context.rb', linha 101 def mod_retry_writes? Cliente && Cliente.[:retry_writes] end |
#overflow_only_retry? ➤ 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 todas as novas tentativas até agora foram devido apenas a sobrecarga.
127 128 129 |
# Arquivo 'lib/mongo/operation/context.rb', linha 127 def overload_only_retry? !!@overload_only_retry end |
#refresh(connection_global_id: @connection_global_id, timeout_ms: nil, view: nil) ➤ Operação::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 Operação::Contexto com o prazo atualizado e relativo ao momento atual.
69 70 71 72 73 74 75 76 77 78 79 |
# Arquivo 'lib/mongo/operation/context.rb', linha 69 def atualizar(connection_global_id: @connection_global_id, timeout_ms: nada, visualizar: nada) operation_timeouts = @operation_timeouts operation_timeouts = operation_timeouts.mesclar(operation_timeout_ms: timeout_ms) se timeout_ms auto.classe.Novo(cliente: Cliente, sessão: session, connection_global_id: connection_global_id, operation_timeouts: operation_timeouts, visualizar: vista || auto.vista, opções: ) 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).
122 123 124 |
# Arquivo 'lib/mongo/operation/context.rb', linha 122 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.
113 114 115 116 117 118 119 |
# Arquivo 'lib/mongo/operation/context.rb', linha 113 def server_api se Cliente Cliente.[:server_api] elsif [: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.
89 90 91 |
# Arquivo 'lib/mongo/operation/context.rb', linha 89 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.
136 137 138 139 140 141 142 |
# Arquivo 'lib/mongo/operation/context.rb', linha 136 def com(**opciona) dup.toque fazer |copy| opciona.cada fazer |k, v| copy.instance_variable_set("@#{k}", v) end end end |