ConnectionCommon — Documentation by YARD 0.9.37 (original) (raw)

Class: Mongo::Server::ConnectionCommon

Inherits:

Object

Defined in:

lib/mongo/server/connection_common.rb

Overview

Note:

Although methods of this module are part of the public API, the fact that these methods are defined on this module and not on the classes which include this module is not part of the public API.

Common methods used by both monitoring and non-monitoring connections.

Instance Attribute Summary collapse

Instance Method Summarycollapse

Instance Attribute Details

#compressor ⇒ String | nil

The compressor negotiated during the handshake for this connection, if any.

This attribute is nil for connections that haven’t completed the handshake yet, and for connections that negotiated no compression.

37 38 39 # File 'lib/mongo/server/connection_common.rb', line 37 def compressor @compressor end

#pid ⇒ Integer

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns pid The process id when the connection was created.

53 54 55 # File 'lib/mongo/server/connection_common.rb', line 53 def pid @pid end

Instance Method Details

#connected? ⇒ true, false

Determine if the connection is currently connected.

47 48 49 # File 'lib/mongo/server/connection_common.rb', line 47 def connected? !!socket end

#handshake_command(handshake_document) ⇒ Protocol::Message

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Build a command that should be used for connection handshake.

| 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | # File 'lib/mongo/server/connection_common.rb', line 94 def handshake_command(handshake_document) if handshake_document['apiVersion'] || handshake_document['loadBalanced'] Protocol::Msg.new( [], {}, handshake_document.merge({'$db' => Database::ADMIN}) ) else Protocol::Query.new( Database::ADMIN, Database::COMMAND, handshake_document, :limit => -1 ) end end | | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#handshake_document(app_metadata, speculative_auth_doc: nil, load_balancer: false, server_api: nil) ⇒ BSON::Document

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Build a document that should be used for connection handshake.

| 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | # File 'lib/mongo/server/connection_common.rb', line 68 def handshake_document(app_metadata, speculative_auth_doc: nil, load_balancer: false, server_api: nil) serv_api = app_metadata.server_api || server_api document = if serv_api HELLO_DOC.merge(Utils.transform_server_api(serv_api)) else LEGACY_HELLO_DOC end document.merge(app_metadata.validated_document).tap do | doc| if speculative_auth_doc doc.update(speculativeAuthenticate: speculative_auth_doc) end if load_balancer doc.update(loadBalanced: true) end end end | | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |