Classe: Mongo::Socket Private
- Herda:
-
Objeto
- Objeto
- Mongo::Socket
- Inclui:
- Soquete::Constantes
- Definido em:
- 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
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Fornece dados adicionais sobre soquetes para uso do driver.
Definido sob namespace
Módulos: OcspCache Classes: OcspVerifier, SSL, TCP, Unix
Colapsode resumo constante
- SSL_ERROR =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Obsoleto.Mensagem de erro para exceções relacionadas ao TLS.
'O MongoDB pode não ser configurado com suporte a TLS'- TIMEOUT_ERROR =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Obsoleto.Mensagem de erro para tempos limite em chamadas de soquete.
'A solicitação de soquete atingiu o tempo limite'- TIMEOUT_PACK =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
A diretiva do pacote para tempos limite.
'l_2'- WRITE_CHUNK_SIZE =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Escreva dados no soquete em blocos desse tamanho.
65_536
Recolhimento do Resumo do atributo de instância
-
#família ➤ inteiro
Somente leitura
privado
família O tipo de família anfitriã.
-
#opções ➤ Hash
Somente leitura
privado
As opções.
-
#socket ⇒ Socket
Somente leitura
privado
Soquete O soquete encapsulado.
-
#timeout ➤ Flutuante
Somente leitura
privado
Tempo limite O tempo limite do soquete.
Recolhimento do Resumo do método de instância
-
#vivo? ➤ verdadeiro, falso
obsoleto
privado
Obsoleto.
Usa #connectable? na conexão.
-
#close ➤ true
privado
Feche o soquete.
- #conectável? ➤ verdadeiro obsoleto privado Obsoleto.
-
#connection_address ➤ Endereço
privado
Endereço da conexão que criou este soquete.
-
#connection_generation ➤ Inteiro
privado
Geração da conexão (para conexões não monitoradas) que criou esse soquete.
-
#eof? ➤ Booleano
privado
Testa se este soquete atingiu EOF.
-
#get(*args) ➤ Object
privado
Os delegados chegam ao soquete subjacente.
-
#initialize(timeout, opções) ➤ Soquete
construtor
privado
Inicializa atributos de soquete comuns.
-
#monitor? ➤ verdadeiro | false
privado
Se esse soquete foi criado por uma conexão de monitoramento.
-
#pipe ⇒ IO
privado
escute durante a chamar do sistema select ao ler do soquete.
-
#read(comprimento, socket_timeout: nil, tempo limite: nil) ➤ Objeto
privado
Irá ler todos os dados da tomada para o número de bytes fornecido.
-
#readbyte ➤ Objeto
privado
Leia um único byte do soquete.
-
#resumo ➤ string
privado
Resumo legível por humanos do soquete para depuração.
-
#write(*args, timeout: nil) ➤ Inteiro
privado
Escreve dados na instância de soquete.
Detalhes do construtor
#initialize(timeout, opções) ➤ Soquete
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicializa atributos de soquete comuns.
70 71 72 73 |
# Arquivo 'lib/mongo/socket.rb', linha 70 def inicializar(timeout, ) @timeout = timeout @opções = end |
Detalhes do atributo da instância
#família ➤ inteiro (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna família O tipo de família anfitriã.
76 77 78 |
# Arquivo 'lib/mongo/socket.rb', linha 76 def família @family end |
#opções ➤ Hash (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna as opções.
82 83 84 |
# Arquivo 'lib/mongo/socket.rb', linha 82 def @opções end |
#soquete ➤ Soquete (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o soquete O soquete encapsulado.
79 80 81 |
# Arquivo 'lib/mongo/socket.rb', linha 79 def soquete @socket end |
#timeout ➤ Flutuante (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna timeout O timeout do soquete.
85 86 87 |
# Arquivo 'lib/mongo/socket.rb', linha 85 def timeout @timeout end |
Detalhes do método de instância
#vivo? ➤ true, false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Usa #connectable? na conexão.
A conexão do soquete está ativa?
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# Arquivo 'lib/mongo/socket.rb', linha 146 def alive? sock_arr = [ @socket ] se Kernel.selecione(sock_arr, nada, sock_arr, 0) # O eof? a chamada deve retornar imediatamente desde selecione # indicado que o soquete é legível. No entanto, se @socket for um TLS # soquete, eof? pode bloquear de qualquer maneira - consulte RUBY-2140. começar Tempo-limite.timeout(0.1) fazer eof? end salvar ::Tempo-limite::Erro true end mais true end end |
#close ➤ true
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Feche o soquete.
172 173 174 175 176 177 178 179 180 181 182 |
# Arquivo 'lib/mongo/socket.rb', linha 172 def Fechar começar # Às vezes, parece que o fecho pode esperar por um longo tempo ::Tempo-limite.timeout(5) fazer @socket&.Fechar end salvar StandardError #Silencie todos os erros end true end |
#conectável? ➤ verdadeiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Apenas para compatibilidade com versões anteriores, não use.
271 272 273 |
# Arquivo 'lib/mongo/socket.rb', linha 271 def conectável? true end |
#connection_address ➤ Endereço
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o endereço da conexão que criou esse soquete.
90 91 92 |
# Arquivo 'lib/mongo/socket.rb', linha 90 def connection_address [:connection_address] end |
#connection_generation ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a geração da conexão (para conexões sem monitoramento) que criou esse soquete.
98 99 100 |
# Arquivo 'lib/mongo/socket.rb', linha 98 def connection_generação [:connection_generação] end |
#eof? ➤ Booleano
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Testa se este soquete atingiu EOF. Usado principalmente para verificações de vida.
260 261 262 263 264 |
# Arquivo 'lib/mongo/socket.rb', linha 260 def eof? @socket.eof? salvar IOError, SystemCallError true end |
#get(*args) ➤ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Os delegados chegam ao soquete subjacente.
194 195 196 197 198 |
# Arquivo 'lib/mongo/socket.rb', linha 194 def obtém(*Args) map_Exceptions fazer @socket.obtém(*Args) end end |
#monitor? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna se esse soquete foi criado por uma conexão de monitoramento.
106 107 108 |
# Arquivo 'lib/mongo/socket.rb', linha 106 def monitorar? !![:monitor] end |
#pipe ⇒ IO
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
escute durante a chamar do sistema select ao ler do soquete.
113 114 115 |
# Arquivo 'lib/mongo/socket.rb', linha 113 def pipe [:pipe] end |
#read(comprimento, socket_timeout: nil, tempo limite: nil) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Irá ler todos os dados da tomada para o número de bytes fornecido. Se nenhum dado for retornado, uma exceção será gerada.
217 218 219 220 221 222 223 224 225 |
# Arquivo 'lib/mongo/socket.rb', linha 217 def ler(Tamanho, socket_timeout: nada, timeout: nada) aumentar ArgumentError, 'Tanto o tempo limite quanto o socket_timeout não podem ser definidos ' se !socket_timeout.nada? && !timeout.nada? se !socket_timeout.nada? || timeout.nada? read_without_timeout(Tamanho, socket_timeout) mais read_with_timeout(Tamanho, timeout) end end |
#readbyte ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Leia um único byte do soquete.
235 236 237 238 239 |
# Arquivo 'lib/mongo/socket.rb', linha 235 def readbyte map_Exceptions fazer @socket.readbyte end end |
#resumo ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna um resumo legível por humanos do soquete para depuração.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# Arquivo 'lib/mongo/socket.rb', linha 120 def Resumo fileno = começar @socket&.fileno salvar StandardError '<no socket> ' end se monitorar? indicador = se [:push] 'pm' mais 'm' end "#{connection_address};#{connector};fd=#{fileno}" mais "#{connection_address};c:#{connection_generation};fd=#{fileno}" end end |
#write(*args, timeout: nil) ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Escreve dados na instância de soquete.
251 252 253 254 255 |
# Arquivo 'lib/mongo/socket.rb', linha 251 def escrever(*Args, timeout: nada) map_Exceptions fazer do_write(*Args, timeout: timeout) end end |