Classe: Mongo::Socket Private
- Herda:
-
Objeto
- Objeto
- Mongo::Socket
- Inclui:
- Soquete::Constantes
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/socket.rb,
build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb,
build/ruby-driver-v2.19/lib/mongo/socket/tcp.rb,
build/ruby-driver-v2.19/lib/mongo/socket/unix.rb,
build/ruby-driver-v2.19/lib/mongo/socket/ocsp_cache.rb,
build/ruby-driver-v2.19/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.
' OMongoDB pode não ser configurado com suporte a TLS'.congelar
- 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.
' Asolicitação de soquete atingiu o tempo limite'.congelar
- 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'.congelar
- 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.
65536
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.
-
#read(length, timeout: nil) ⇒ Object
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) ➤ 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.
69 70 71 72 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 69 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ã.
75 76 77 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 75 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.
81 82 83 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 81 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.
78 79 80 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 78 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.
84 85 86 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 84 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?
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 134 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.
160 161 162 163 164 165 166 167 168 169 170 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 160 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 #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.
Somente para compatibilidade com versões anteriores, não use.
262 263 264 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 262 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.
89 90 91 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 89 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.
97 98 99 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 97 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.
251 252 253 254 255 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 251 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.
182 183 184 185 186 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 182 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.
105 106 107 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 105 def monitorar? !![:monitor] end |
#read(comprimento, 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.
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 202 def ler(Tamanho, timeout: nada) map_Exceptions fazer de dados = read_from_socket(Tamanho, timeout: timeout) a menos que (de dados.Tamanho > 0 || Tamanho == 0) aumentar IOError, "Espera-se ler > 0 bytes, mas leia 0 bytes" end enquanto de dados.Tamanho < Tamanho chunk = read_from_socket(Tamanho - de dados.Tamanho, timeout: timeout) a menos que (chunk.Tamanho > 0 || Tamanho == 0) aumentar IOError, "Espera-se ler > 0 bytes, mas leia 0 bytes" end de dados << chunk end de dados 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.
227 228 229 230 231 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 227 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.
112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 112 def Resumo fileno = @socket&.fileno salvar '<no socket> ' || '<no socket> ' 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) ➤ 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.
242 243 244 245 246 |
# File 'build/ruby-driver-v2.19/lib/mongo/socket.rb', linha 242 def escrever(*Args) map_Exceptions fazer do_write(*Args) end end |