Clase: Mongo::Operation::Context Privado

Hereda:
Titular del tiempo de espera de Csot Mostrar todo
Definido en:
lib/mongo/operación/contexto.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Contexto para las operaciones.

Contiene varios objetos necesarios para tomar decisiones sobre la ejecución de operaciones en un solo contenedor y proporciona métodos de fachada para los objetos contenidos.

El contexto contiene parámetros para las operaciones y, por lo tanto, mientras se prepara una operación, no debe cambiar nada en él. Al procesar el resultado de la operación, los datos devueltos por el contexto pueden cambiar (por ejemplo, si se cancela una transacción), pero en ese momento la operación ya no debe leer nada del contexto. Dado que los datos del contexto pueden cambiar durante la ejecución de la operación, los objetos de contexto no deben reutilizarse para varias operaciones.

Colapso delresumen de atributos de instancia

Atributos heredados de CsotTimeoutHolder

#fecha límite, #tiempos_de_espera_de_operación, #tiempo_de_espera_en_segundos

Colapso del resumen del método de instancia

Métodos heredados de CsotTimeoutHolder

#comprobar_tiempo_de_espera!, #csot?, #tiempo_de_espera_restante_ms, #tiempo_de_espera_restante_ms!, #tiempo_de_espera_restante_seg, #tiempo_de_espera_restante_seg!, #tiempo_de_espera_restante?, #tiempo_de_espera_expirado?

Detalles del constructor

#inicializar(cliente: nulo, sesión: nula, id_global_de_conexión: nulo, tiempos_de_espera_de_operación: {}, vista: nula, opciones: nula) ⇒ Contexto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de Context.



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
# Archivo 'lib/mongo/operation/context.rb', línea 38

def inicializar(
  cliente: nulo,
  sesión: nulo,
  id_global_de_conexión: nulo,
  tiempos de espera de operación: {},
  ver: nulo,
  opciones: nulo
)
  Si opciones
    Si Cliente
      propagar ArgumentError, 'Nose pueden especificar tanto el cliente como las opciones'
    end

    Si sesión
      propagar ArgumentError, 'Nose pueden especificar ambas, sesión y opciones'
    end
  end

  Si id_global_de_conexión && sesión&.pinned_connection_global_id
    propagar ArgumentError, 'Intentando anclar el contexto a una conexión cuando la sesión ya está anclada a una conexión.'
  end

  @cliente = Cliente
  @sesión = sesión
  @view = vista
  @conexión_global_id = id_global_de_conexión
  @opciones = opciones
  Super(sesión: sesión, tiempos de espera de operación: tiempos de espera de operación)
end

Detalles de los atributos de instancia

#clienteObjeto (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



68
69
70
# Archivo 'lib/mongo/operation/context.rb', línea 68

def Cliente
  @cliente
end

#opcionesObjeto (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



71
72
73
# Archivo 'lib/mongo/operation/context.rb', línea 71

def opciones
  @opciones
end

#sesiónObjeto (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



69
70
71
# Archivo 'lib/mongo/operation/context.rb', línea 69

def sesión
  @sesión
end

#vistaObjeto (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



70
71
72
# Archivo 'lib/mongo/operation/context.rb', línea 70

def vista
  @view
end

Detalles del método de instancia

#¿abortando_transacción?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


105
106
107
# Archivo 'lib/mongo/operation/context.rb', línea 105

def ¿abortando_transacción?
  ¿en_transacción? && sesión.¿abortando_transacción?
end

#¿alguna_reintención_de_escribir?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


117
118
119
# Archivo 'lib/mongo/operation/context.rb', línea 117

def ¿alguna_reintención_de_escribir?
  ¿reintentos_modernos_escrituras? || ¿legado_retry_writes?
end

#¿confirmando_transacción?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


101
102
103
# Archivo 'lib/mongo/operation/context.rb', línea 101

def ¿confirmando_transacción?
  ¿en_transacción? && sesión.¿confirmando_transacción?
end

#connection_global_idObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



89
90
91
# Archivo 'lib/mongo/operation/context.rb', línea 89

def id_global_de_conexión
  @conexión_global_id || sesión&.pinned_connection_global_id
end

#descifrar(cmd) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



159
160
161
# Archivo 'lib/mongo/operation/context.rb', línea 159

def desencriptar(cmd)
  encriptador.desencriptar(cmd, yo)
end

#desencriptar?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


155
156
157
# Archivo 'lib/mongo/operation/context.rb', línea 155

def ¿descifrar?
  !!Cliente&.encriptador
end

#cifrar(nombre_base_datos, cmd) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



151
152
153
# Archivo 'lib/mongo/operation/context.rb', línea 151

def cifrar(nombre_base_datos, cmd)
  encriptador.cifrar(nombre_base_datos, cmd, yo)
end

#¿encriptar?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


147
148
149
# Archivo 'lib/mongo/operation/context.rb', línea 147

def ¿cifrar?
  Cliente&.encriptador&.¿cifrar? || false
end

#encriptadorObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



163
164
165
166
167
168
169
# Archivo 'lib/mongo/operation/context.rb', línea 163

def encriptador
  Si Cliente&.encriptador
    Cliente.encriptador
  else
    propagar Error::InternalDriverError, 'Solo se debe acceder al encriptador cuando se va a realizar el cifrado'
  end
end

#in_transaction?Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


93
94
95
# Archivo 'lib/mongo/operation/context.rb', línea 93

def ¿en_transacción?
  sesión&.¿en_transacción? || false
end

#inspeccionarObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



171
172
173
# Archivo 'lib/mongo/operation/context.rb', línea 171

def inspeccionar
  "#<#{self.class} connection_global_id=#{connection_global_id.inspect} deadline=#{deadline.inspect} options=#{options.inspect} operation_timeouts=#{operation_timeouts.inspect}>"
end

#legacy_retry_writes?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


113
114
115
# Archivo 'lib/mongo/operation/context.rb', línea 113

def ¿legado_retry_writes?
  Cliente && !Cliente.opciones[:retry_writes] && Cliente.máximo de reintentos de escritura > 0
end

#¿modern_retry_writes?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


109
110
111
# Archivo 'lib/mongo/operation/context.rb', línea 109

def ¿reintentos_modernos_escrituras?
  Cliente && Cliente.opciones[:retry_writes]
end

#actualizar(connection_global_id: @connection_global_id, timeout_ms: nulo, vista: nulo) ⇒ Operación::Contexto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve un nuevo Operation::Context con la fecha límite actualizada y relativa al momento actual.

Devuelve:



77
78
79
80
81
82
83
84
85
86
87
# Archivo 'lib/mongo/operation/context.rb', línea 77

def actualizar(id_global_de_conexión: @conexión_global_id, tiempo de espera_ms: nulo, ver: nulo)
  tiempos de espera de operación = @tiempos_de_espera_de_operación
  tiempos de espera de operación = tiempos de espera de operación.unir(tiempo de espera de operación_ms: tiempo de espera_ms) Si tiempo de espera_ms

  yo.clase.Nuevo(cliente: Cliente,
                 sesión: sesión,
                 id_global_de_conexión: id_global_de_conexión,
                 tiempos de espera de operación: tiempos de espera de operación,
                 ver: vista || yo.vista,
                 opciones: opciones)
end

#¿reintentar?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Si la operación es un reintento (verdadero) o un intento inicial (falso).

Devuelve:

  • (Booleano)


130
131
132
# Archivo 'lib/mongo/operation/context.rb', línea 130

def ¿rever?
  !!@is_retry
end

#server_apiObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



121
122
123
124
125
126
127
# Archivo 'lib/mongo/operation/context.rb', línea 121

def API del servidor
  Si Cliente
    Cliente.opciones[:server_api]
  elsif opciones
    opciones[:server_api]
  end
end

#transacción_inicial?Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)


97
98
99
# Archivo 'lib/mongo/operation/context.rb', línea 97

def ¿transacción_inicial?
  sesión&.¿transacción_inicial? || false
end

#con(**opts) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve un nuevo contexto con los parámetros cambiados según los argumentos proporcionados.

Parámetros:

  • opta (Hash)

    un conjunto personalizable de opciones

Opciones Hash (**opts):

  • :is_retry (verdadero|falso)

    Si la operación es un reintento o un primer intento.



139
140
141
142
143
144
145
# Archivo 'lib/mongo/operation/context.rb', línea 139

def con(**opta)
  dup.grifo hacer |copy|
    opta.cada hacer |k, v|
      copy.conjunto_de_variables_de_instancia("@#{k}", v)
    end
  end
end