Classe: Mongo::Socket Private

Herda:
Objeto
  • Objeto
mostrar tudo
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.

Desde:

  • 2.0.0

Subclasses conhecidas diretas

SSL, TCP, Unix

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.

Desde:

  • 2.0.0

' 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.

Desde:

  • 2.0.0

' 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.

Desde:

  • 2.0.0

'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.

Desde:

  • 2.0.0

65536

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

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.

Parâmetros:

  • timeout (Flutuante)

    O valor de tempo limite do soquete.

  • opções (Hash)

    As opções.

Hash de opções (opções):

  • :connect_timeout (Flutuante)

    Tempo limite de conexão.

  • :connection_address (Endereço)

    Endereço da conexão que criou este soquete.

  • :connection_generação (Inteiro)

    Geração da conexão (para conexões não monitoradas) que criou esse soquete.

  • :monitor (verdadeiro | falso)

    Se esse soquete foi criado por uma conexão de monitoramento.

  • :pipe (IO)

    O descritor de arquivo para o final de leitura do pipe para ouvir durante a chamada de sistema selecionada ao ler do soquete.

Desde:

  • 2.0.0



72
73
74
75
# Arquivo 'lib/mongo/socket.rb', linha 72

def inicializar(timeout, opções)
  @timeout = timeout
  @opções = opções
end

Detalhes do atributo da instância

#famíliainteiro (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ã.

Retorna:

  • (Inteiro)

    família O tipo de família anfitriã.

Desde:

  • 2.0.0



78
79
80
# Arquivo 'lib/mongo/socket.rb', linha 78

def família
  @family
end

#opçõesHash (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.

Retorna:

  • (Hash)

    As opções.

Desde:

  • 2.0.0



84
85
86
# Arquivo 'lib/mongo/socket.rb', linha 84

def opções
  @opções
end

#soqueteSoquete (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.

Retorna:

  • (Soquete)

    soquete O soquete encapsulado.

Desde:

  • 2.0.0



81
82
83
# Arquivo 'lib/mongo/socket.rb', linha 81

def soquete
  @socket
end

#timeoutFlutuante (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.

Retorna:

  • (Flutuante)

    timeout O tempo limite do soquete.

Desde:

  • 2.0.0



87
88
89
# Arquivo 'lib/mongo/socket.rb', linha 87

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.

Obsoleto.

Usa #connectable? na conexão.

A conexão do soquete está ativa?

Exemplos:

O soquete está vivo?

socket.alive?

Retorna:

  • (verdadeiro, falso)

    Se o soquete estiver ativo.

Desde:

  • 2.0.0



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# Arquivo 'lib/mongo/socket.rb', linha 144

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

#closetrue

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.

Exemplos:

Feche o soquete.

socket.close

Retorna:

  • (verdadeiro)

    Sempre verdadeiro.

Desde:

  • 2.0.0



170
171
172
173
174
175
176
177
178
179
180
# Arquivo 'lib/mongo/socket.rb', linha 170

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.

Obsoleto.

Apenas para compatibilidade com versões anteriores, não use.

Retorna:

  • (verdadeiro)

    Sempre verdadeiro.

Desde:

  • 2.0.0



270
271
272
# Arquivo 'lib/mongo/socket.rb', linha 270

def conectável?
  true
end

#connection_addressEndereç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.

Retorna:

  • (Endereço)

    Endereço da conexão que criou este soquete.

Desde:

  • 2.0.0



92
93
94
# Arquivo 'lib/mongo/socket.rb', linha 92

def connection_address
  opções[:connection_address]
end

#connection_generationInteiro

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.

Retorna:

  • (Inteiro)

    Geração da conexão (para conexões não monitoradas) que criou esse soquete.

Desde:

  • 2.0.0



100
101
102
# Arquivo 'lib/mongo/socket.rb', linha 100

def connection_generação
  opções[: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.

Retorna:

  • (Booleano)

Desde:

  • 2.0.5



259
260
261
262
263
# Arquivo 'lib/mongo/socket.rb', linha 259

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.

Exemplos:

Obtenha a próxima linha.

socket.gets(10)

Parâmetros:

  • Args (Array<Object>)

    Os argumentos a serem repassados.

Retorna:

  • (Objeto)

    Os bytes retornados.

Desde:

  • 2.0.0



192
193
194
195
196
# Arquivo 'lib/mongo/socket.rb', linha 192

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.

Retorna:

  • (verdadeiro | falso)

    Se esse soquete foi criado por uma conexão de monitoramento.

Desde:

  • 2.0.0



108
109
110
# Arquivo 'lib/mongo/socket.rb', linha 108

def monitorar?
  !!opções[:monitor]
end

#pipeIO

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.

listen on during the select system call when reading from the socket.

Retorna:

  • (IO)

    The file descriptor for the read end of the pipe to

Desde:

  • 2.0.0



115
116
117
# Arquivo 'lib/mongo/socket.rb', linha 115

def pipe
  opções[: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.

Exemplos:

Leia todos os dados solicitados do soquete.

socket.read(4096)

Parâmetros:

  • Tamanho (Inteiro)

    O número de bytes a serem lidos.

  • socket_timeout (Numérico) (padrão para: nil)

    O timeout a ser usado para cada leitura de chunk, mutuamente exclusivo para timeout.

  • timeout (Numérico) (padrão para: nil)

    O tempo limite total para toda a operação de leitura, mutuamente exclusivo para socket_timeout.

Retorna:

  • (Objeto)

    Os dados do soquete.

Aumenta:

  • (Mongo::SocketError)

    Se nem todos os dados forem retornados.

Desde:

  • 2.0.0



215
216
217
218
219
220
221
222
223
224
# Arquivo 'lib/mongo/socket.rb', linha 215

def ler(Tamanho, socket_timeout: nada, timeout: nada)
  se !socket_timeout.nada? && !timeout.nada?
    aumentar ArgumentError, 'Tanto o tempo limite quanto o socket_timeout não podem ser definidos '
  end
  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.

Exemplos:

Leia um único byte.

socket.readbyte

Retorna:

  • (Objeto)

    O byte de leitura.

Desde:

  • 2.0.0



234
235
236
237
238
# Arquivo 'lib/mongo/socket.rb', linha 234

def readbyte
  map_Exceptions fazer
    @socket.readbyte
  end
end

#resumostring

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.

Retorna:

  • (string)

    Resumo legível por humanos do soquete para depuração.

Desde:

  • 2.0.0



122
123
124
125
126
127
128
129
130
131
132
133
134
# Arquivo 'lib/mongo/socket.rb', linha 122

def Resumo
  fileno = @socket&.fileno salvar '<no socket> ' || '<no socket> '
  se monitorar?
    indicador = se opções[: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.

Parâmetros:

  • Args (Array<Object>)

    Os dados a serem gravados.

  • timeout (Numérico) (padrão para: nil)

    O tempo limite total para toda a operação de gravação.

Retorna:

  • (Inteiro)

    O comprimento dos bytes gravados no soquete.

Aumenta:

Desde:

  • 2.0.0



250
251
252
253
254
# Arquivo 'lib/mongo/socket.rb', linha 250

def escrever(*Args, timeout: nada)
  map_Exceptions fazer
    do_write(*Args, timeout: timeout)
  end
end