ConnectionCommon — Documentation by YARD 0.9.37 (original) (raw)
Class: Mongo::Server::ConnectionCommon
Inherits:
Object
- Object
- Mongo::Server::ConnectionCommon show all
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
- #compressor ⇒ String | nil readonly
The compressor negotiated during the handshake for this connection, if any. - #pid ⇒ Integer readonly private
Pid The process id when the connection was created.
Instance Method Summarycollapse
- #connected? ⇒ true, false deprecated Deprecated.
- #handshake_command(handshake_document) ⇒ Protocol::Message private
Build a command that should be used for connection handshake. - #handshake_document(app_metadata, speculative_auth_doc: nil, load_balancer: false, server_api: nil) ⇒ BSON::Document private
Build a document that should be used for connection handshake.
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 | | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |