Clase: Mongo::Operation::Context Privado
- Hereda:
-
CsotTimeoutHolder
- Objeto
- CsotTimeoutHolder
- Mongo::Operation::Context
- Definido en:
- lib/mongo/operación/contexto.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada 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, como tal, mientras se prepare una operación, nada en el contexto debe cambiar. Cuando el resultado de la operación está trámite, los datos devueltos por el contexto pueden cambiar (por ejemplo, porque se anula una transacción), pero en ese punto la operación ya no debería leer nada del contexto. Debido a que los datos de contexto pueden cambiar durante la ejecución de una operación, los objetos de contexto no deben reutilizarse para múltiples operaciones.
Resumen de atributos de la instancia colapsar
- #cliente ⇒ Objeto Solo lectura privado
- #opciones ⇒ Objeto Solo lectura privado
- #sesión ⇒ Objeto Solo lectura privado
- #view ⇒ Object Solo lectura privado
Atributos heredados de CsotTimeoutHolder
#plazo, #operation_timeouts, #timeout_sec
Resumen del método de instancia colapsar
- #aborting_transaction? ⇒ Boolean privado
- #any_retry_writes? ⇒ Booleano privado
- #committing_transaction? ⇒ Booleano privado
- #connection_global_id ⇒ Objeto privado
- #decrypt(cmd) ⇒ Objeto privado
- #desencriptar? ⇒ booleano privado
- #cifrar(nombre_base_datos, cmd) ⇒ Objeto privado
- #¿encriptar? ⇒ Booleano privado
- #encriptador ⇒ Objeto privado
- #in_transaction? ⇒ Boolean privado
-
#iniciar(cliente: nil, sesión: nil, connection_global_id: nil, operation_timeouts: {}, vista: nil, opciones: nil) ⇒ Contexto
constructor
privado
Una nueva instancia de Context.
- #inspect ⇒ Object privado
- #legacy_retry_writes? ⇒ booleano privado
- #modern_retry_writes? ⇒ Booleano privado
-
#refresh(connection_global_id: @connection_global_id, timeout_ms: nil, view: nil) ⇒ operación::Context
privado
Devuelve un nuevo Operation::Context con la fecha límite actualizada y relativa al momento actual.
-
#¿reintentar? ⇒ Booleano
privado
Si la operación es un reintento (verdadero) o un intento inicial (falso).
- #server_api ⇒ Object privado
- #transacción_inicial? ⇒ Booleano privado
-
#con(**opts) ⇒ Objeto
privado
Devuelve un nuevo contexto con los parámetros cambiados según los argumentos proporcionados.
Métodos heredados de CsotTimeoutHolder
#check_timeout!, #csot?, #remaining_timeout_ms, #remaining_timeout_ms!, #remaining_timeout_sec, #remaining_timeout_sec!, #timeout?, #timeout_expired?
Detalles del constructor
#initialize(client: nil, session: nil, connection_global_id: nil, operation_timeouts: {}, view: nil, options: nil) ⇒ 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 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 |
# Archivo 'lib/mongo/operation/context.rb', línea 38 def inicializar( cliente: nulo, sesión: nulo, id_global_de_conexión: nulo, operation_timeouts: {}, ver: nulo, opciones: nulo ) si si Cliente propagar ArgumentError, 'No se 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 connection_global_id && sesión&.pinned_connection_global_id propagar ArgumentError, 'Intentando fijar el contexto a una conexión cuando la sesión ya está fijada a una conexión.' end @cliente = Cliente @sesión = sesión @view = vista @connection_global_id = connection_global_id @options = super(sesión: sesión, operation_timeouts: tiempos de espera de operación) end |
Detalles de los atributos de instancia
#client ⇒ Object (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 |
#opciones ⇒ Objeto (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 @options end |
#sesión ⇒ Objeto (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 |
#vista ⇒ Objeto (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_transaction? ⇒ 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.
105 106 107 |
# Archivo 'lib/mongo/operation/context.rb', línea 105 def aborting_transaction? en_transacción? && sesión.aborting_transaction? end |
#any_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.
117 118 119 |
# Archivo 'lib/mongo/operation/context.rb', línea 117 def any_retry_writes? ¿reintentos_modernos_escrituras? || ¿legacy_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.
101 102 103 |
# Archivo 'lib/mongo/operation/context.rb', línea 101 def guardando_transacción? en_transacción? && sesión.guardando_transacción? end |
#connection_global_id ⇒ 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.
89 90 91 |
# Archivo 'lib/mongo/operation/context.rb', línea 89 def connection_global_id @connection_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 descifrar(cmd) encriptador.descifrar(cmd, sí mismo) 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.
155 156 157 |
# Archivo 'lib/mongo/operation/context.rb', línea 155 def ¿descifrar? !!Cliente&.encriptador end |
#encriptar(db_name, cmd) ⇒ Object
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 cifrado(db_name, cmd) encriptador.cifrado(db_name, cmd, sí mismo) end |
#cifrado? ⇒ 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.
147 148 149 |
# Archivo 'lib/mongo/operation/context.rb', línea 147 def cifrado? Cliente&.encriptador&.cifrado? || false end |
#encriptador ⇒ 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.
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, 'El encriptador sólo debe ser accesible cuando el cifrado deba realizarse' 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.
93 94 95 |
# Archivo 'lib/mongo/operation/context.rb', línea 93 def en_transacción? sesión&.en_transacción? || false end |
#inspect ⇒ Object
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=#{.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.
113 114 115 |
# Archivo 'lib/mongo/operation/context.rb', línea 113 def ¿legacy_retry_writes? Cliente && !Cliente.[retry_writes] && Cliente.max_write_retries > 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.
109 110 111 |
# Archivo 'lib/mongo/operation/context.rb', línea 109 def ¿reintentos_modernos_escrituras? Cliente && Cliente.[retry_writes] end |
#refresh(connection_global_id: @connection_global_id, timeout_ms: nil, view: nil) ⇒ 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.
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: @connection_global_id, tiempo_de_espera_ms: nulo, ver: nulo) tiempos de espera de operación = @operation_timeouts tiempos de espera de operación = tiempos de espera de operación.fusionar(operation_timeout_ms: timeout_ms) si timeout_ms sí mismo.clase.Nuevo(cliente: Cliente, sesión: sesión, id_global_de_conexión: connection_global_id, operation_timeouts: tiempos de espera de operación, ver: vista || sí mismo.vista, opciones: ) end |
#retry? ⇒ 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).
130 131 132 |
# Archivo 'lib/mongo/operation/context.rb', línea 130 def ¿rever? !!@is_retry end |
#server_api ⇒ 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.
121 122 123 124 125 126 127 |
# Archivo 'lib/mongo/operation/context.rb', línea 121 def server_api si Cliente Cliente.[API del servidor] elsif [API del servidor] 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.
97 98 99 |
# Archivo 'lib/mongo/operation/context.rb', línea 97 def ¿transacción_inicial? sesión&.¿transacción_inicial? || false end |
#with(**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.
139 140 141 142 143 144 145 |
# Archivo 'lib/mongo/operation/context.rb', línea 139 def con(**opta) dup.tocar hacer |copy| opta.cada hacer |k, v| copy.conjunto_de_variables_de_instancia("@#{k}", v) end end end |