Clase: Mongo::servidor::ConnectionBase
- Hereda:
-
ConnectionCommon
- Objeto
- ConnectionCommon
- Mongo::Servidor::ConnectionBase
- Ampliado por:
- Reenviable
- Incluye:
- Supervisión::Publishable
- Definido en:
- lib/mongo/servidor/connection_base.rb
Overview
Aunque los métodos de este módulo forman parte de la API pública, el hecho de que estos métodos estén definidos en este módulo y no en las clases que incluyen este módulo no forma parte de la API pública.
Esta clase encapsula la funcionalidad de conexión común.
Subclases conocidas directas
Resumen de constantes colapsar
- DEFAULT_MAX_BSON_OBJECT_SIZE =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
El tamaño máximo permitido en bytes que un documento proporcionado por el usuario puede ocupar cuando se serializa, si la respuesta de bienvenida del servidor no incluye el campo maxBsonObjectSize.
Los comandos que se envían al servidor pueden superar este tamaño por MAX_BSON_COMMAND_OVERHEAD.
16_777_216- MAX_BSON_COMMAND_OVERHEAD =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
La sobrecarga adicional permitida para los datos de comando (es decir, campos agregados al documento de comando por el controlador, en contraposición a los documentos proporcionados por el usuario) al serializar un comando completo a BSON.
16_384- REDUCED_MAX_BSON_SIZE =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
2_097_152
Constantes incluidas desde Loggable
Resumen de atributos de la instancia colapsar
-
#descripción ⇒ Servidor::Descripción
Solo lectura
privado
Devuelve la descripción del servidor para esta conexión, derivada de la respuesta hello para el handshake realizado en esta conexión.
-
#options ⇒ Hash
Solo lectura
Opciones Las opciones pasadas.
-
#servidor ⇒ Mongo::Address
Solo lectura
Address La dirección a la que hay que conectarse.
Atributos incluidos de supervisión::Publishable
Atributos heredados de ConnectionCommon
Resumen del método de instancia colapsar
- #app_metadata ⇒ Object
-
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
Envía un solo mensaje a la conexión.
-
#generation ⇒ Integer | nil
Generación de pool de conexiones desde la cual se creó esta conexión.
-
#service_id ⇒ nil | Objeto
El id. del servicio, si lo hay.
Métodos incluidos de Monitoring::Publishable
#publish_cmap_event, #publish_event, #publish_sdam_event
Métodos incluidos desde Registrable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Métodos heredados de ConnectionCommon
#¿conectado?, #comando_de_apretón_de_manos, #documento_de_apretón_de_manos
Detalles de atributo de instancias
#descripción ⇒ Server::Description (solo lectura)
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.
Un objeto de conexión que aún no se ha conectado (realizado el apretón de manos y autenticado, si se requiere autenticación) no tiene descripción. Durante el proceso de handshaking y autenticación, el driver debe usar las configuraciones globales por defecto, en particular, no asumir que las propiedades de una conexión en particular son las mismas que las propiedades de otras conexiones realizadas a la misma dirección (ya que el servidor en el otro extremo podría haber sido apagado y podría haberse iniciado una versión diferente del servidor).
Devuelve la descripción del servidor para esta conexión, derivada de la respuesta hello para el handshake realizado en esta conexión.
80 81 82 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 80 def Descripción @descripción end |
#opciones ⇒ Hash (solo lectura)
Opciones de devolución Las opciones que se pasan.
51 52 53 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 51 def @options end |
#servidor ⇒ Mongo::Address (solo lectura)
Dirección de devoluciones La dirección a la que conectarse.
56 57 58 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 56 def Server @server end |
Detalles del método de instancia
#app_metadata ⇒ Object
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 105 def @app_metadata ||= begin igual = true AppMetadata::AUTH_OPTION_KEYS.cada hacer |llave| si @server.[llave] != [llave] igual = false break end end si igual @server. else AppMetadata.Nuevo(.fusionar(propósito: @server..Propósito)) end end end |
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
Este método recibe el nombre de dispatch porque 'send' (enviar) es un método principal de Ruby presente en todos los objetos.
Para compatibilidad retroactiva, este método acepta los mensajes en un arreglo. Sin embargo, debe proporcionarse exactamente un mensaje por invocación.
Despacha un solo mensaje a la conexión. Si el mensaje requiere una respuesta, se devolverá una respuesta.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 148 def enviar(, context, = {}) # El código de supervisión no gestiona correctamente múltiples mensajes, # y el driver, internamente, no envía más de un mensaje a la vez. # nunca. Por lo tanto, prohíbe el uso de múltiples mensajes por ahora. propagar ArgumentError, 'Solo se puede enviar un mensaje a la vez.' si .longitud != 1 si Descripción.¿desconocido? propagar Error::InternalDriverError, "No se puede enviar un mensaje en una conexión con una descripción desconocida: #{description.inspect}" end = .primero entregar(, context, ) end |
#generación ⇒ Integer | nil
Generación del pool de conexiones a partir del cual se creó esta conexión. Puede ser nulo.
98 99 100 101 102 103 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 98 def Generación # Si la conexión es a un balanceador de carga, se establece @generation # después de que se complete el apretón de manos. Si la conexión es a otro servidor # el tipo, la generación se especifica durante la creación de la conexión. @generación || [:generación] end |
#service_id ⇒ nil | objeto
Retorna El ID del servicio, si existe.
90 91 92 |
# Archivo 'lib/mongo/server/connection_base.rb', línea 90 def service_id Descripción&.service_id end |