Módulo: Mongo::Operation::Executable Privado
- Incluye:
- ResponseHandling
- Incluido en:
- OpMsgBase
- Definido en:
- lib/mongo/operation/shared/executable.rb
Overview
Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.
Comportamiento ejecutable compartido de las operaciones.
Resumen de atributos de la instancia colapsar
-
#context ⇒ Operation::Context | nil
privado
El contexto operacional utilizado para ejecutar esta operación.
Resumen del método de instancia colapsar
- #do_execute(connection, context, options = {}) ⇒ objeto privado
- #execute(conexion, contexto:, opciones: {}) ⇒ Objeto privado
Detalles de atributo de instancias
#context ⇒ Operation::Context | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el contexto de operación utilizado para ejecutar esta operación.
30 31 32 |
# Archivo 'lib/mongo/operation/shared/executable.rb', línea 30 def context @contexto end |
Detalles del método de instancia
#do_execute(connection, context, options = {}) ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
32 33 34 35 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# Archivo 'lib/mongo/operation/shared/executable.rb', línea 32 def do_execute(Conexión, context, = {}) # Guarde el contexto en la instancia para evitar tener que pasarla como # parámetro para cada método individual. Existen muchos métodos heredados que # todavía lo aceptan como parámetro, que por ahora se dejan como están para # minimizar el impacto de este cambio. En adelante, puede ser # es razonable refactorizar las cosas para que esta referencia guardada se use en su lugar. @contexto = context sesión&.materialize_if_needed desanclar_posiblemente(sesión, Conexión) hacer add_error_labels(Conexión, context) hacer check_for_network_error hacer add_server_diagnostics(Conexión) hacer get_result(Conexión, context, ) hacer |Resultado| si sesión si sesión.en_transacción? && Conexión.Descripción.load_balancer? si sesión.pinned_connection_global_id a menos que sesión.pinned_connection_global_id == Conexión.global_id propagar( Error::InternalDriverError, "Se esperaba que la operación utilizara la conexión #{session.pinned_connection_global_id} pero utilizó #{connection.global_id}" ) end elsif !sesión.guardando_transacción? && !sesión.aborting_transaction? sesión.pin_to_connection(Conexión.global_id, conexión: Conexión) Conexión.alfiler(transacción) end end si sesión.snapshot? && !sesión. sesión. = Resultado. end end si Resultado.has_cursor_id? && Conexión.Descripción.load_balancer? si Resultado.cursor_id == 0 Conexión.unpin else Conexión.alfiler end end process_result(Resultado, Conexión) end end end end end end |
#ejecutar(conexión, contexto:, opciones: {}) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
83 84 85 86 87 88 89 90 91 |
# Archivo 'lib/mongo/operation/shared/executable.rb', línea 83 def ejecutar(Conexión, context:, opciones: {}) si Lint.¿habilitado? && !Conexión.is_a?(mongo::Server::Conexión) propagar Error::LintError, "El argumento de conexión es del tipo incorrecto: #{connection}" end do_execute(Conexión, context, ).tocar hacer |Resultado| validate_result(Resultado, Conexión, context) end end |