Class: SessionManager

Inherits:
Object show all
Defined in:
lib/dango/session_manager.rb

Overview

sessionとsidの管理(1セッションごとにインスタンス化される)

Constant Summary collapse

MaxSidCounter =
999999

Instance Method Summary collapse

Constructor Details

#initialize(shared, rails_env) ⇒ SessionManager

initialize



8
9
10
11
12
13
14
15
16
# File 'lib/dango/session_manager.rb', line 8

def initialize(shared, rails_env)
  @shared = shared
  @rails_env = rails_env
  
  @session_list = {}
  @session_mutex = DangoMutex.new(:session_mutex)
  
  @shared[:_session_manager] = {}
end

Instance Method Details

#close_session(sid) ⇒ Object

session終了



29
30
31
32
33
34
35
# File 'lib/dango/session_manager.rb', line 29

def close_session(sid)
  @session_mutex.timeout_sync(3, :close_session) do
    drop_sid()
  end
#    @session_list[Thread.current.object_id] = nil
  @session_list.delete(Thread.current.object_id)
end

#sessionObject

sessionへのアクセス



38
39
40
# File 'lib/dango/session_manager.rb', line 38

def session
  @session_list[Thread.current.object_id]
end

#session_listObject

session_listへのアクセス



43
44
45
# File 'lib/dango/session_manager.rb', line 43

def session_list
  @session_list
end

#start_sessionObject

session開始



20
21
22
23
24
25
26
# File 'lib/dango/session_manager.rb', line 20

def start_session()
  sid = nil
  @session_mutex.timeout_sync(3, :start_session) do
    sid = generate_sid()
  end
  @session_list[Thread.current.object_id] = {:sid => sid}
end