Class: SessionManager
Overview
sessionとsidの管理(1セッションごとにインスタンス化される)
Constant Summary collapse
- MaxSidCounter =
999999
Instance Method Summary collapse
-
#close_session(sid) ⇒ Object
session終了.
-
#initialize(shared, rails_env) ⇒ SessionManager
constructor
initialize.
-
#session ⇒ Object
sessionへのアクセス.
-
#session_list ⇒ Object
session_listへのアクセス.
-
#start_session ⇒ Object
session開始.
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 |
#session ⇒ Object
sessionへのアクセス
38 39 40 |
# File 'lib/dango/session_manager.rb', line 38 def session @session_list[Thread.current.object_id] end |
#session_list ⇒ Object
session_listへのアクセス
43 44 45 |
# File 'lib/dango/session_manager.rb', line 43 def session_list @session_list end |
#start_session ⇒ Object
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 |