Clase: Mongo::Operation::Context Privado
- Hereda:
-
Titular del tiempo de espera de Csot
- Objeto
- Titular del tiempo de espera de Csot
- Mongo::Operación::Contexto
- 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
- #cliente ⇒ Objeto solo lectura privada
- #opciones ⇒ Objeto solo lectura privada
- #sesión ⇒ Objeto solo lectura privada
- #view ⇒ Object solo lectura privada
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
- #¿abortando_transacción? ⇒ Booleano privada
- #¿alguna_reintención_de_escribir? ⇒ Booleano privada
- #¿confirmando_transacción? ⇒ Booleano privada
- #connection_global_id ⇒ Objeto privada
- #descifrar(cmd) ⇒ Objeto privada
- #¿descifrar? ⇒ Booleano privada
- #cifrar(nombre_base_datos, cmd) ⇒ Objeto privada
- #¿encriptar? ⇒ Booleano privada
- #encriptador ⇒ Objeto privada
- #in_transaction? ⇒ Boolean privada
-
#inicializar(cliente: nulo, sesión: nula, id_global_de_conexión: nulo, tiempos_de_espera_de_operación: {}, vista: nula, opciones: nula) ⇒ Contexto
constructor
privada
Una nueva instancia de Contexto.
- #inspeccionar ⇒ Objeto privada
- #legacy_retry_writes? ⇒ Booleano privada
- #¿modern_retry_writes? ⇒ Booleano privada
-
#actualizar(connection_global_id: @connection_global_id, timeout_ms: nulo, vista: nulo) ⇒ Operación::Contexto
privada
Devuelve un nuevo Operation::Context con la fecha límite actualizada y relativa al momento actual.
-
#¿reintentar? ⇒ Booleano
privada
Si la operación es un reintento (verdadero) o un intento inicial (falso).
- #server_api ⇒ Objeto privada
- #transacción_inicial? ⇒ Booleano privada
-
#con(**opts) ⇒ Objeto
privada
Devuelve un nuevo contexto con los parámetros cambiados según los argumentos proporcionados.
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 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 = Super(sesión: sesión, tiempos de espera de operación: tiempos de espera de operación) end |
Detalles de los atributos de instancia
#cliente ⇒ 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.
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 @opciones 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_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.
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.
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.
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_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 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.
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.
147 148 149 |
# Archivo 'lib/mongo/operation/context.rb', línea 147 def ¿cifrar? Cliente&.encriptador&.¿cifrar? || 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, '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.
93 94 95 |
# Archivo 'lib/mongo/operation/context.rb', línea 93 def ¿en_transacción? sesión&.¿en_transacción? || false end |
#inspeccionar ⇒ 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.
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 ¿legado_retry_writes? Cliente && !Cliente.[: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.
109 110 111 |
# Archivo 'lib/mongo/operation/context.rb', línea 109 def ¿reintentos_modernos_escrituras? Cliente && Cliente.[: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.
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: ) 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).
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 API del servidor Si Cliente Cliente.[:server_api] elsif [: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.
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.
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 |