Classe: Mongo::Server::ConnectionBase
- Herda:
-
ConnectionCommon
- Objeto
- ConnectionCommon
- Mongo::Server::ConnectionBase
- Estendido por:
- Encaminhável
- Inclui:
- Monitoramento::publicável
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb
Visão geral
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.
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.
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.
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.
2097152
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#descrição ➤ Servidor::Descrição
Somente leitura
privado
Retorna a descrição do servidor para esta conexão, derivada da resposta hello para a negociação realizada nesta conexão.
-
#opções ➤ Hash
Somente leitura
Opções As opções passadas.
-
#server ➤ Mongo::Address
Somente leitura
Endereço O endereço ao qual se conectar.
Atributos incluídos no Monitoramento::publicável
Atributos herdados de ConnectionCommon
Recolhimento do Resumo do método de instância
- #app_metadata ➤ Objeto
-
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
Despache uma única mensagem para a conexão.
-
#geração ➤ Inteiro | nada
Geração do pool de conexões a partir da qual essa conexão foi criada.
-
#service_id ➤ nil | Objeto
A ID do serviço, se houver.
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ção ➤ Servidor::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.
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.
82 83 84 |
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 82 def Descrição @description end |
#opções ➤ Hash (somente leitura)
Retorna opções As opções passadas.
53 54 55 |
# File 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', linha 53 def @opções end |
#server ➤ Mongo::Address (readonly)
Retorna endereço O endereço ao qual se conectar.
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
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.[chave] != [chave] mesmos = false intervalo end end se mesmos @server. mais AppMetadata.Novo(.mesclar(finalidade: @server..Propósito)) end end end |
#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil
Esse método é chamado de despacho, pois "enviar" é um método Ruby principal em todos os objetos.
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.
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(, Contexto, = {}) # 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 .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 = .primeiro entregar(, Contexto, ) end |
#geração ➤ Inteiro | nada
Geração do pool de conexões a partir da qual essa conexão foi criada. Pode ser nulo.
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 || [:generação] end |
#service_id ➤ nil | Objeto
Retorna A ID do serviço, se houver.
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 |