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

Returns a new instance of SessionManager.



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

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

Instance Method Details

#close_session(sid) ⇒ Object

session終了



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

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

#sessionObject

sessionへのアクセス



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

def session
  @session_mutex.synchronize do
    @session_list[Thread.current.object_id]
  end
end

#start_sessionObject

session開始



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

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