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 driver.
Definido bajo Namespace
Modules: OcspCache clase: OcspVerifier, SSL, TCP, Unix
Resumen de constantes colapsar
- SSL_ERROR =, SSL_ERROR =
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.
Obsoleto.Mensaje de error para excepciones relacionadas con TLS.
'Es posible que MongoDB no esté configurado con soporte TLS'- TIMEOUT_ERROR =
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.
Obsoleto.Mensaje de error para tiempos de espera en llamadas de socket.
'La solicitud de socket agotó el tiempo de espera'- TIMEOUT_PACK =
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 directiva de paquete para tiempos de espera.
'l_2'- WRITE_CHUNK_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.
Guardar datos en el socket en fragmentos de este tamaño.
65_536
Resumen de atributos de la instancia colapsar
-
#familia ⇒ Entero
Solo lectura
privado
La familia El tipo de familia anfitriona.
-
#options ⇒ Hash
Solo lectura
privado
Las opciones.
-
#socket ⇒ Socket
Solo lectura
privado
Socket El socket 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.
Usa #connectable? en la conexión en su lugar.
-
#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
La delegación llega 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 el número de bytes proporcionado.
-
#readbyte ⇒ Object
privado
Lee un único 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 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.
Inicializa los atributos comunes del socket.
70 71 72 73 |
# Archivo 'lib/mongo/socket.rb', línea 70 def inicializar(tiempo de espera, ) @timeout = tiempo de espera @options = end |
Detalles de atributo de instancias
#familia ⇒ Entero (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.
Devuelve la familia El tipo de familia anfitriona.
76 77 78 |
# Archivo 'lib/mongo/socket.rb', línea 76 def familia @family end |
#opciones ⇒ Hash (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.
Devuelve las opciones.
82 83 84 |
# Archivo 'lib/mongo/socket.rb', línea 82 def @options end |
#socket ⇒ Socket (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.
Devuelve socket El socket envuelto.
79 80 81 |
# Archivo 'lib/mongo/socket.rb', línea 79 def enchufe @socket end |
#timeout ⇒ Float (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.
Devuelve timeout. El tiempo de espera del socket.
85 86 87 |
# Archivo 'lib/mongo/socket.rb', línea 85 def tiempo de espera @timeout end |
Detalles del método de instancia
#¿vivo? ⇒ verdadero, falso
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.
Usa #connectable? en la conexión en su lugar.
¿Está viva la conexión de socket?
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# Archivo 'lib/mongo/socket.rb', línea 146 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 Tiempo de espera.tiempo de espera(0.1) hacer eof? end rescate ::Tiempo de espera::Error true end else true end end |
#cerrar ⇒ verdadero
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.
Cierra el enchufe.
172 173 174 175 176 177 178 179 180 181 182 |
# Archivo 'lib/mongo/socket.rb', línea 172 def Cerrar begin # A veces parece que el margen de error puede prolongarse durante mucho tiempo ::Tiempo de espera.tiempo de espera(5) hacer @socket&.Cerrar end rescate StandardError # Silenciar todos los errores end true end |
#¿conectable? ⇒ true
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.
Solo por compatibilidad con versiones anteriores, no lo utilices.
271 272 273 |
# Archivo 'lib/mongo/socket.rb', línea 271 def ¿connectable? true end |
#connection_address ⇒ Dirección
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 la dirección de la conexión que creó este socket.
90 91 92 |
# Archivo 'lib/mongo/socket.rb', línea 90 def connection_address [Dirección de conexión] end |
#generation_conexión ⇒ Integer
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 la generación de la conexión (para conexiones que no son de supervisión) que creó este socket.
98 99 100 |
# Archivo 'lib/mongo/socket.rb', línea 98 def connection_generation [:connection_generation] end |
#eof? ⇒ Boolean
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.
Prueba si este socket ha alcanzado EOF. Utilizado principalmente para verificaciones de actividad.
260 261 262 263 264 |
# Archivo 'lib/mongo/socket.rb', línea 260 def eof? @socket.eof? rescate IOError, SystemCallError true end |
#obtiene(*args) ⇒ 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.
La delegación llega al socket subyacente.
194 195 196 197 198 |
# Archivo 'lib/mongo/socket.rb', línea 194 def recibe(*args) map_exceptions hacer @socket.recibe(*args) end end |
#supervisar? ⇒ verdadero | falso
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 si este socket fue creado por una conexión de supervisión.
106 107 108 |
# Archivo 'lib/mongo/socket.rb', línea 106 def supervisar? !![supervisar] end |
#pipe ⇒ IO
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.
escuchar durante la llamada al sistema select al leer desde el socket.
113 114 115 |
# Archivo 'lib/mongo/socket.rb', línea 113 def pipe [pipe] end |
#read(length, socket_timeout: nil, timeout: nil) ⇒ 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.
Leerá todos los datos del socket para la cantidad de bytes proporcionada. Si no se devuelve ningún dato, se generará una excepción.
217 218 219 220 221 222 223 224 225 |
# Archivo 'lib/mongo/socket.rb', línea 217 def Lea(longitud, socket_timeout: nulo, timeout: nulo) propagar ArgumentError, 'No se pueden establecer ni timeout ni socket_timeout' si !socket_timeout.nil? && !tiempo de espera.nil? 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 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.
Lee un único byte del socket.
235 236 237 238 239 |
# Archivo 'lib/mongo/socket.rb', línea 235 def readbyte map_exceptions hacer @socket.readbyte end end |
#summary → String
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.
Retorna un resumen legible por humanos del socket para depuración.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# Archivo 'lib/mongo/socket.rb', línea 120 def Resumen fileno = begin @socket&.fileno rescate StandardError '<no socket>' end si supervisar? indicador = si [:push] 'pm' else 'm' end "#{connection_address};#{indicator};fd=#{fileno}" else "#{connection_address};c:#{connection_generation};fd=#{fileno}" end end |
#guardar(*args, tiempo de espera: nil) ⇒ Integer
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.
Escribe datos en la instancia del socket.
251 252 253 254 255 |
# Archivo 'lib/mongo/socket.rb', línea 251 def guardar(*args, timeout: nulo) map_exceptions hacer do_write(*args, timeout: tiempo de espera) end end |