class Mongo::Session::ServerSession
An object representing the server-side session.
@api private
@since 2.5.0
Constants
- DASH_REGEX
Regex for removing dashes from the UUID string.
@since 2.5.0
- UUID_PACK
Pack directive for the UUID.
@since 2.5.0
Attributes
The last time the server session was used.
@since 2.5.0
The current transactions number.
@since 2.5.0
Public Class Methods
Initialize a ServerSession
.
@example
ServerSession.new
@since 2.5.0
# File lib/mongo/session/server_session.rb, line 52 def initialize set_last_use! session_id @txn_num = 0 end
Public Instance Methods
Get a formatted string for use in inspection.
@example Inspect the session object.
session.inspect
@return [ String ] The session inspection.
@since 2.5.0
# File lib/mongo/session/server_session.rb, line 103 def inspect "#<Mongo::Session::ServerSession:0x#{object_id} session_id=#{session_id} last_use=#{@last_use}>" end
Increment and return the next transaction number.
@example Get the next transaction number.
server_session.next_txn_num
@return [ Integer ] The next transaction number.
@since 2.5.0
# File lib/mongo/session/server_session.rb, line 91 def next_txn_num @txn_num += 1 end
The session id of this server session.
@example Get the session id.
server_session.session_id
@return [ BSON::Document ] The session id.
@since 2.5.0
# File lib/mongo/session/server_session.rb, line 78 def session_id @session_id ||= (bytes = [SecureRandom.uuid.gsub(DASH_REGEX, '')].pack(UUID_PACK) BSON::Document.new(id: BSON::Binary.new(bytes, :uuid))) end
Update the last_use
attribute of the server session to now.
@example Set the last use field to now.
server_session.set_last_use!
@return [ Time ] The last time the session was used.
@since 2.5.0
# File lib/mongo/session/server_session.rb, line 66 def set_last_use! @last_use = Time.now end