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
-
#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.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# Arquivo 'lib/mongo/operation/context.rb', linha 38 def inicializar( cliente: nada, sessão: nada, connection_global_id: nada, operation_timeouts: {}, visualizar: nada, opções: nada ) se 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 @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.
68 69 70 |
# Arquivo 'lib/mongo/operation/context.rb', linha 68 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.
71 72 73 |
# Arquivo 'lib/mongo/operation/context.rb', linha 71 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.
69 70 71 |
# Arquivo 'lib/mongo/operation/context.rb', linha 69 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.
70 71 72 |
# Arquivo 'lib/mongo/operation/context.rb', linha 70 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.
105 106 107 |
# Arquivo 'lib/mongo/operation/context.rb', linha 105 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.
117 118 119 |
# Arquivo 'lib/mongo/operation/context.rb', linha 117 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.
101 102 103 |
# Arquivo 'lib/mongo/operation/context.rb', linha 101 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.
89 90 91 |
# Arquivo 'lib/mongo/operation/context.rb', linha 89 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.
159 160 161 |
# Arquivo 'lib/mongo/operation/context.rb', linha 159 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.
155 156 157 |
# Arquivo 'lib/mongo/operation/context.rb', linha 155 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.
151 152 153 |
# Arquivo 'lib/mongo/operation/context.rb', linha 151 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.
147 148 149 |
# Arquivo 'lib/mongo/operation/context.rb', linha 147 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.
163 164 165 166 167 168 169 |
# Arquivo 'lib/mongo/operation/context.rb', linha 163 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.
93 94 95 |
# Arquivo 'lib/mongo/operation/context.rb', linha 93 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.
171 172 173 |
# Arquivo 'lib/mongo/operation/context.rb', linha 171 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.
113 114 115 |
# Arquivo 'lib/mongo/operation/context.rb', linha 113 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.
109 110 111 |
# Arquivo 'lib/mongo/operation/context.rb', linha 109 def mod_retry_writes? Cliente && Cliente.[:retry_writes] 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.
77 78 79 80 81 82 83 84 85 86 87 |
# Arquivo 'lib/mongo/operation/context.rb', linha 77 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).
130 131 132 |
# Arquivo 'lib/mongo/operation/context.rb', linha 130 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.
121 122 123 124 125 126 127 |
# Arquivo 'lib/mongo/operation/context.rb', linha 121 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.
97 98 99 |
# Arquivo 'lib/mongo/operation/context.rb', linha 97 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.
139 140 141 142 143 144 145 |
# Arquivo 'lib/mongo/operation/context.rb', linha 139 def com(**opciona) dup.toque fazer |copy| opciona.cada fazer |k, v| copy.instance_variable_set("@#{k}", v) end end end |