Class: SocketList

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

Overview

ソケットとIDの対応

Instance Method Summary collapse

Constructor Details

#initializeSocketList

Returns a new instance of SocketList.



5
6
7
8
# File 'lib/dango/socket_list.rb', line 5

def initialize
  @sl_hash = Hash.new
  @sl_mutex = DangoMutex.new(:socket_list_mutex)
end

Instance Method Details

#[](sid) ⇒ Object



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

def [](sid)
  @sl_mutex.timeout_sync(2, "[]") do
#      raise("not exist sid(#{sid.inspect})") if ! @sl_hash.has_key?(sid) 
    return(nil) if ! @sl_hash.has_key?(sid) 
    @sl_hash[sid]
  end
end

#add(sid, sock) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/dango/socket_list.rb', line 22

def add(sid, sock)
  @sl_mutex.timeout_sync(2, :add) do
    raise("already exist sid(#{sid.inspect})") if @sl_hash.has_key?(sid) 
    raise("sock(#{sock.inspect}) is not Socket") if sock.kind_of?(Socket)
    @sl_hash[sid] = sock
  end
end

#all_sidObject



10
11
12
13
14
# File 'lib/dango/socket_list.rb', line 10

def all_sid()
  @sl_mutex.timeout_sync(2, :all_sid) do
    @sl_hash.keys
  end
end

#delete(sid) ⇒ Object



16
17
18
19
20
# File 'lib/dango/socket_list.rb', line 16

def delete(sid)
  @sl_mutex.timeout_sync(2, :delete) do
    @sl_hash.delete(sid)
  end
end