Class: Faye::Engine::Base

Inherits:
Object
  • Object
show all
Includes:
Logging, Timeouts
Defined in:
lib/faye/engines/base.rb

Direct Known Subclasses

Memory, Redis

Constant Summary

Constants included from Logging

Logging::DEFAULT_LOG_LEVEL, Logging::LOG_LEVELS

Instance Attribute Summary collapse

Attributes included from Logging

#log_level

Instance Method Summary collapse

Methods included from Timeouts

#add_timeout, #remove_timeout

Methods included from Logging

#log

Constructor Details

#initialize(options) ⇒ Base

Returns a new instance of Base.



25
26
27
28
29
30
31
32
# File 'lib/faye/engines/base.rb', line 25

def initialize(options)
  @options     = options
  @connections = {}
  @interval    = @options[:interval] || INTERVAL
  @timeout     = @options[:timeout]  || TIMEOUT

  debug 'Created new engine: ?', @options
end

Instance Attribute Details

#intervalObject (readonly)

Returns the value of attribute interval.



23
24
25
# File 'lib/faye/engines/base.rb', line 23

def interval
  @interval
end

#timeoutObject (readonly)

Returns the value of attribute timeout.



23
24
25
# File 'lib/faye/engines/base.rb', line 23

def timeout
  @timeout
end

Instance Method Details

#close_connection(client_id) ⇒ Object



48
49
50
51
# File 'lib/faye/engines/base.rb', line 48

def close_connection(client_id)
  debug 'Closing connection for ?', client_id
  @connections.delete(client_id)
end

#connect(client_id, options = {}, &callback) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/faye/engines/base.rb', line 34

def connect(client_id, options = {}, &callback)
  debug 'Accepting connection from ?', client_id
  ping(client_id)
  conn = connection(client_id, true)
  conn.connect(options, &callback)
  empty_queue(client_id)
end

#connection(client_id, create) ⇒ Object



42
43
44
45
46
# File 'lib/faye/engines/base.rb', line 42

def connection(client_id, create)
  conn = @connections[client_id]
  return conn if conn or not create
  @connections[client_id] = Connection.new(self, client_id)
end

#flush(client_id) ⇒ Object



53
54
55
56
57
# File 'lib/faye/engines/base.rb', line 53

def flush(client_id)
  debug 'Flushing message queue for ?', client_id
  conn = @connections[client_id]
  conn.flush! if conn
end