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

last_use[R]

The last time the server session was used.

@since 2.5.0

Public Class Methods

new() click to toggle source

Initialize a ServerSession.

@example

ServerSession.new

@since 2.5.0

# File lib/mongo/session/server_session.rb, line 47
def initialize
  set_last_use!
  session_id
  @txn_num = -1
end

Public Instance Methods

inspect() click to toggle source

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 98
def inspect
  "#<Mongo::Session::ServerSession:0x#{object_id} session_id=#{session_id} last_use=#{@last_use}>"
end
next_txn_num() click to toggle source

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 86
def next_txn_num
  @txn_num += 1
end
session_id() click to toggle source

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 73
def session_id
  @session_id ||= (bytes = [SecureRandom.uuid.gsub(DASH_REGEX, '')].pack(UUID_PACK)
                    BSON::Document.new(id: BSON::Binary.new(bytes, :uuid)))
end
set_last_use!() click to toggle source

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 61
def set_last_use!
  @last_use = Time.now
end