Clase: Mongo::Socket Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Socket
- Incluye:
- Socket: :Constants
- Definido en:
- lib/mongo/socket.rb,
lib/mongo/socket/ssl.rb,
lib/mongo/socket/tcp.rb,
lib/mongo/socket/unix.rb,
lib/mongo/socket/ocsp_cache.rb,
lib/mongo/socket/ocsp_verifier.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.
Proporciona datos adicionales sobre los sockets para el uso del controlador.
Definido bajo Namespace
Modules: OcspCache Clases: OcspVerifier, SSL, TCP, Unix
Colapso delresumen constante
- SSL_ERROR =, SSL_ERROR =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Obsoleto.Mensaje de error para excepciones relacionadas con TLS.
'Esposible que MongoDB no esté configurado con soporte TLS'.freeze
- ERROR DE TIEMPO DE ESPERA =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Obsoleto.Mensaje de error para tiempos de espera en llamadas de socket.
'Seagotó el tiempo de solicitud de socket'.freeze
- TIMEOUT_PACK =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
La directiva de paquete para tiempos de espera.
'l_2'.freeze
- WRITE_CHUNK_SIZE =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Escribe datos en el socket en fragmentos de este tamaño.
65536
Resumen de atributos de la instancia colapsar
-
#familia ⇒ Entero
Solo lectura
privado
Familia El tipo de familia anfitriona.
-
#options ⇒ Hash
Solo lectura
privado
Las opciones.
-
#socket ⇒ Socket
Solo lectura
privado
Zócalo El zócalo envuelto.
-
#timeout ⇒ Float
Solo lectura
privado
Timeout El tiempo de espera del socket.
Resumen del método de instancia colapsar
-
#alive? ⇒ verdadero o falso
Obsoleto
privado
Obsoleto.
Utilice #connectable? en la conexión.
-
#cerrar ⇒ verdadero
privado
Cierra el enchufe.
- #¿se puede conectar? ⇒ verdadero Obsoleto privado Obsoleto.
-
#connection_address ⇒ Dirección
privado
Dirección de la conexión que creó este socket.
-
#connection_generation ⇒ Entero
privado
Generación de la conexión (para conexiones que no son de supervisión) que creó este socket.
-
#eof? ⇒ Boolean
privado
Prueba si este socket ha alcanzado el final del archivo (EOF).
-
#gets(*args) ⇒ Object
privado
Los delegados llegan al socket subyacente.
-
#initialize(timeout, options) ⇒ Socket
constructor
privado
Inicializa los atributos comunes del socket.
-
#supervisar? ⇒ true | false
privado
Si este socket fue creado por una conexión de supervisión.
-
#pipe ⇒ IO
privado
escuchar durante la llamada al sistema select al leer desde el socket.
-
#read(length, socket_timeout: nil, timeout: nil) ⇒ objeto
privado
Leerá todos los datos del socket para la cantidad de bytes proporcionada.
-
#readbyte ⇒ Object
privado
Leer un solo byte del socket.
-
#summary ⇒ string
privado
Resumen legible para humanos del socket para depuración.
-
#guardar(*args, timeout: nil) ⇒ Integer
privado
Escribe datos en la instancia del socket.
Detalles del constructor
#initialize(timeout, options) ⇒ Socket
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicializa los atributos comunes del socket.
72 73 74 75 |
# Archivo 'lib/mongo/socket.rb', línea 72 def inicializar(tiempo de espera, ) @se acabó el tiempo = tiempo de espera @options = end |
Detalles de los atributos de instancia
#familia ⇒ Entero (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.
Devuelve familia El tipo de familia anfitriona.
78 79 80 |
# Archivo 'lib/mongo/socket.rb', línea 78 def familia @familia end |
#opciones ⇒ Hash (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.
Devuelve las opciones.
84 85 86 |
# Archivo 'lib/mongo/socket.rb', línea 84 def @options end |
#socket ⇒ Socket (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.
Devuelve socket El socket envuelto.
81 82 83 |
# Archivo 'lib/mongo/socket.rb', línea 81 def enchufe @socket end |
#tiempo de espera ⇒ Flotante (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.
Devuelve timeout. El tiempo de espera del socket.
87 88 89 |
# Archivo 'lib/mongo/socket.rb', línea 87 def tiempo de espera @se acabó el tiempo end |
Detalles del método de instancia
#¿vivo? ⇒ verdadero, falso
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Utilice #connectable? en la conexión.
¿Está activa la conexión del socket?
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# Archivo 'lib/mongo/socket.rb', línea 144 def alive? sock_arr = [ @socket ] si Kernel::Seleccionar(sock_arr, nulo, sock_arr, 0) # Se supone que eof? debe llamar inmediatamente desde select # indica que el socket es legible. Sin embargo, si @socket es un TLS # socket, ¿eof? puede bloquear de todos modos - ver RUBY-2140. begin Se acabó el tiempo.tiempo de espera(0.1) hacer eof? end rescate ::Se acabó el tiempo::Error true end else true end end |
#cerrar ⇒ verdadero
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Cierra el enchufe.
170 171 172 173 174 175 176 177 178 179 180 |
# Archivo 'lib/mongo/socket.rb', línea 170 def Cerrar begin # A veces parece que el margen de error puede prolongarse durante mucho tiempo ::Se acabó el tiempo.tiempo de espera(5) hacer @socket&.Cerrar end rescate # Silenciar todos los errores end true end |
#¿conectable? ⇒ verdadero
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Solo por compatibilidad con versiones anteriores, no lo utilices.
270 271 272 |
# Archivo 'lib/mongo/socket.rb', línea 270 def ¿connectable? true end |
#dirección_de_conexión ⇒ Dirección
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 la dirección de la conexión que creó este socket.
92 93 94 |
# Archivo 'lib/mongo/socket.rb', línea 92 def connection_address [Dirección de conexión] end |
#generation_conexión ⇒ Integer
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 la generación de la conexión (para conexiones que no son de supervisión) que creó este socket.
100 101 102 |
# Archivo 'lib/mongo/socket.rb', línea 100 def connection_generation [:connection_generation] end |
#eof? ⇒ 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.
Prueba si este socket ha alcanzado EOF. Utilizado principalmente para verificaciones de actividad.
259 260 261 262 263 |
# Archivo 'lib/mongo/socket.rb', línea 259 def eof? @socket.eof? rescate IOError, SystemCallError true end |
#obtiene(*args) ⇒ 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.
Los delegados llegan al socket subyacente.
192 193 194 195 196 |
# Archivo 'lib/mongo/socket.rb', línea 192 def recibe(*args) map_exceptions hacer @socket.recibe(*args) end end |
#supervisar? ⇒ verdadero | falso
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 si este socket fue creado por una conexión de supervisión.
108 109 110 |
# Archivo 'lib/mongo/socket.rb', línea 108 def supervisar? !![supervisar] end |
#pipe ⇒ IO
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
escuchar durante la llamada al sistema select al leer desde el socket.
115 116 117 |
# Archivo 'lib/mongo/socket.rb', línea 115 def pipe [pipe] end |
#read(length, socket_timeout: nil, timeout: nil) ⇒ 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.
Leerá todos los datos del socket para el número de bytes indicado. Si no se devuelven datos, se generará una excepción.
215 216 217 218 219 220 221 222 223 224 |
# Archivo 'lib/mongo/socket.rb', línea 215 def Lea(longitud, socket_timeout: nulo, timeout: nulo) si !socket_timeout.nil? && !tiempo de espera.nil? propagar ArgumentError, 'No se pueden establecer ni timeout ni socket_timeout' end si !socket_timeout.nil? || tiempo de espera.nil? read_without_timeout(longitud, socket_timeout) else read_with_timeout(longitud, tiempo de espera) end end |
#readbyte ⇒ 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.
Leer un solo byte del socket.
234 235 236 237 238 |
# Archivo 'lib/mongo/socket.rb', línea 234 def readbyte map_exceptions hacer @socket.readbyte end end |
#summary → String
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Retorna un resumen legible por humanos del socket para depuración.
122 123 124 125 126 127 128 129 130 131 132 133 134 |
# Archivo 'lib/mongo/socket.rb', línea 122 def Resumen fileno = @socket&.fileno rescate '<no socket>' || '<no socket>' si supervisar? indicador = si [:empujar] 'pm' else 'm' end "#{connection_address};#{indicator};fd=#{fileno}" else "#{connection_address};c:#{connection_generation};fd=#{fileno}" end end |
#escribir(*args, tiempo de espera: nulo) ⇒ Entero
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Escribe datos en la instancia del socket.
250 251 252 253 254 |
# Archivo 'lib/mongo/socket.rb', línea 250 def guardar(*args, timeout: nulo) map_exceptions hacer do_write(*args, timeout: tiempo de espera) end end |