Classe: Mongo::Server::ConnectionBase

Herda:
ConnectionCommon mostrar tudo
Estendido por:
Encaminhável
Inclui:
Monitoramento::publicável
Definido em:
build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb

Visão geral

Observação:

Embora os métodos deste módulo façam parte da API pública, o fato de esses métodos serem definidos neste módulo e não nas classes que incluem este módulo não faz parte da API pública.

Esta classe encapsula a funcionalidade de conexão comum.

Desde:

  • 2.0.0

Subclasses conhecidas diretas

Conexão,conexão pendente

Colapsode resumo constante

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

O tamanho máximo permitido em bytes que um documento fornecido pelo usuário pode ocupar quando serializado, se a resposta de saudação do servidor não incluir o campo maxBsonObjectSize.

Os comandos enviados para o servidor podem exceder esse tamanho em MAX_BSON_COMMAND_OVERHEAD.

Desde:

  • 2.0.0

16777216
MAX_BSON_COMMAND_OVERHEAD =

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 sobrecarga adicional permitida para dados de comando (ou seja, campos adicionados ao documento de comando pelo driver, em oposição aos documentos fornecidos pelo usuário) ao serializar um comando completo para BSON.

Desde:

  • 2.0.0

16384
REUCED_MAX_BSON_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.

Desde:

  • 2.0.0

2097152

Constantes incluídas do Loggable

Loggable::Prefix

Recolhimento do Resumo do atributo de instância

Atributos incluídos no Monitoramento::publicável

#monitoring

Atributos herdados de ConnectionCommon

#compressor, #pid

Recolhimento do Resumo do método de instância

Métodos incluídos do monitoramento::publicável

#publish_cmap_event, #publish_event, #publish_sdam_event

Métodos incluídos no Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger

Métodos herdados de ConnectionCommon

#connected?, #handshake_command, #handshake_document

Detalhes do atributo da instância

#descriçãoServidor::Descrição (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.

Observação:

Um objeto de conexão que ainda não tenha se conectado (handshake e autenticado, se a autenticação for necessária) não tem uma descrição. Embora a negociação e a autenticação do driver devam usar padrões globais, em particular não presumir que as propriedades de uma conexão específica sejam iguais às propriedades de outras conexões feitas no mesmo endereço (já que o servidor na outra extremidade pode ter sido desligado e uma versão de servidor diferente poderia ter sido lançada).

Retorna a descrição do servidor para esta conexão, derivada da resposta hello para a negociação realizada nesta conexão.

Retorna:

Desde:

  • 2.0.0



82
83
84
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 82

def Descrição
  @description
end

#opçõesHash (somente leitura)

Retorna opções As opções passadas.

Retorna:

  • (Hash)

    opções O passado em opções.

Desde:

  • 2.0.0



53
54
55
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 53

def opções
  @opções
end

#serverMongo::Address (readonly)

Retorna endereço O endereço ao qual se conectar.

Retorna:

Desde:

  • 2.0.0



58
59
60
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 58

def Servidor
  @server
end

Detalhes do método de instância

#app_metadata ➤ Objeto

Desde:

  • 2.0.0



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 107

def 
  @app_metadata ||= começar
    mesmos = true
    AppMetadata::AUTH_OPTION_KEYS.cada fazer |chave|
      se @server.opções[chave] != opções[chave]
        mesmos = false
        intervalo
      end
    end
    se mesmos
      @server.
    mais
      AppMetadata.Novo(opções.mesclar(finalidade: @server..Propósito))
    end
  end
end

#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil

Observação:

Esse método é chamado de despacho, pois "enviar" é um método Ruby principal em todos os objetos.

Observação:

Para compatibilidade com versões anteriores, este método aceita as mensagens como uma array. No entanto, exatamente uma mensagem deve ser fornecida por invocação.

Despache uma única mensagem para a conexão. Se a mensagem exigir uma resposta, uma resposta será retornada.

Exemplos:

Envie a mensagem.

connection.dispatch([ insert ])

Parâmetros:

  • mensagens (Array<Message>)

    Uma array de um elemento contendo a mensagem a ser despachada.

  • Contexto (Operação::Contexto)

    O contexto da operação.

  • opções (Hash) (padrão para: {})

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

  • :deserialize_as_bson (Booleano)

    Se deve desserializar a resposta a esta mensagem usando objetos BSON no lugar de tipos Ruby nativos sempre que possível.

Retorna:

Aumenta:

Desde:

  • 2.0.0



150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 150

def despacho(mensagens, Contexto, opções = {})
  # O código de monitoramento não lida corretamente com várias mensagens,
  # e o driver internamente não envia mais de uma mensagem em
  # uma vez. Portanto, proíba o uso de múltiplas mensagens por enquanto.
  se mensagens.Tamanho != 1
    aumentar ArgumentError, 'Só é possível enviar uma mensagem por vez'
  end
  se Descrição.desconhecido?
    aumentar Erro::InternalDriverError, "Não é possível enviar uma mensagem em uma conexão com descrição desconhecida: #{descrição.inspecionar}"
  end
  mensagem = mensagens.primeiro
  entregar(mensagem, Contexto, opções)
end

#geraçãoInteiro | nada

Geração do pool de conexões a partir da qual essa conexão foi criada. Pode ser nulo.

Retorna:

  • (Inteiro | nil)

    Geração de pool de conexões.

Desde:

  • 2.0.0



100
101
102
103
104
105
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 100

def geração
  # Se a conexão for com um balancer de carga, @generação está definida
  # após a conclusão da negociação. Se a conexão for com outro servidor
  # type, a geração é especificada durante a criação da conexão.
  @generação || opções[:generação]
end

#service_idnil | Objeto

Retorna A ID do serviço, se houver.

Retorna:

  • (nil | Objeto)

    A ID do serviço, se houver.

Desde:

  • 2.0.0



92
93
94
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 92

def service_id
  Descrição&.service_id
end