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

Herda:
CsotTimeoutHolder mostrar tudo
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

Atributos herdados de CsotTimeoutHolder

#deadline, #operation_timeouts, #timeout_sec

Recolhimento do Resumo do método de instância

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 opções
    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 = 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
  @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.



63
64
65
# Arquivo 'lib/mongo/operation/context.rb', linha 63

def session
  @session
end

#viewObject (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.

Retorna:

  • (Booleano)


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.

Retorna:

  • (Booleano)


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.

Retorna:

  • (Booleano)


93
94
95
# Arquivo 'lib/mongo/operation/context.rb', linha 93

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.



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.

Retorna:

  • (Booleano)


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.

Retorna:

  • (Booleano)


144
145
146
# Arquivo 'lib/mongo/operation/context.rb', linha 144

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.



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.

Retorna:

  • (Booleano)


85
86
87
# Arquivo 'lib/mongo/operation/context.rb', linha 85

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

#inspecionarObjeto

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.

Retorna:

  • (Booleano)


105
106
107
# Arquivo 'lib/mongo/operation/context.rb', linha 105

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)


101
102
103
# Arquivo 'lib/mongo/operation/context.rb', linha 101

def mod_retry_writes?
  Cliente && Cliente.opções[: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.

Retorna:

  • (Booleano)


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.

Retorna:



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: 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).

Retorna:

  • (Booleano)


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.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)


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.

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.



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