Class: Mameapns::Session
- Inherits:
-
Object
show all
- Defined in:
- lib/mameapns/session.rb,
lib/mameapns/session/deliver.rb,
lib/mameapns/session/feedback.rb
Defined Under Namespace
Classes: Deliver, Feedback
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options) ⇒ Session
Returns a new instance of Session.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/mameapns/session.rb', line 9
def initialize(options)
options.each do |k, v|
setter_name = "#{k}="
self.__send__(setter_name, v) if respond_to?(setter_name)
end
@connection ||= Connection.new(host, port,
ssl_cert: ssl_cert,
ssl_cert_key: ssl_cert_key,
ssl_cert_pass: ssl_cert_pass,
)
@on_exception = nil
@on_error = nil
@thread = nil
@queue = Queue.new
@running = false
@interruptible_sleep = InterruptibleSleep.new
end
|
Instance Attribute Details
#connection ⇒ Object
Returns the value of attribute connection.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def connection
@connection
end
|
#host ⇒ Object
Returns the value of attribute host.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def host
@host
end
|
#interruptible_sleep ⇒ Object
Returns the value of attribute interruptible_sleep.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def interruptible_sleep
@interruptible_sleep
end
|
#port ⇒ Object
Returns the value of attribute port.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def port
@port
end
|
#queue ⇒ Object
Returns the value of attribute queue.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def queue
@queue
end
|
#ssl_cert ⇒ Object
Returns the value of attribute ssl_cert.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def ssl_cert
@ssl_cert
end
|
#ssl_cert_key ⇒ Object
Returns the value of attribute ssl_cert_key.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def ssl_cert_key
@ssl_cert_key
end
|
#ssl_cert_pass ⇒ Object
Returns the value of attribute ssl_cert_pass.
3
4
5
|
# File 'lib/mameapns/session.rb', line 3
def ssl_cert_pass
@ssl_cert_pass
end
|
Instance Method Details
#close ⇒ Object
95
96
97
|
# File 'lib/mameapns/session.rb', line 95
def close
@connection.close
end
|
#connect ⇒ Object
91
92
93
|
# File 'lib/mameapns/session.rb', line 91
def connect
@connection.connect
end
|
#end_session ⇒ Object
48
49
50
|
# File 'lib/mameapns/session.rb', line 48
def end_session
end
|
#handle_error(notification, err) ⇒ Object
52
53
54
|
# File 'lib/mameapns/session.rb', line 52
def handle_error(notification, err)
@on_error.call(notification, err) if @on_error
end
|
#handle_sent(notification) ⇒ Object
56
57
58
|
# File 'lib/mameapns/session.rb', line 56
def handle_sent(notification)
@on_sent.call(notification) if @on_sent
end
|
#on_error(&block) ⇒ Object
107
108
109
|
# File 'lib/mameapns/session.rb', line 107
def on_error(&block)
@on_error = block
end
|
#on_exception(&block) ⇒ Object
103
104
105
|
# File 'lib/mameapns/session.rb', line 103
def on_exception(&block)
@on_exception = block
end
|
#on_sent(&block) ⇒ Object
111
112
113
|
# File 'lib/mameapns/session.rb', line 111
def on_sent(&block)
@on_sent = block
end
|
#push(data) ⇒ Object
75
76
77
|
# File 'lib/mameapns/session.rb', line 75
def push(data)
@queue << data
end
|
#read(size) ⇒ Object
83
84
85
|
# File 'lib/mameapns/session.rb', line 83
def read(size)
@connection.read(size)
end
|
#reconnect ⇒ Object
99
100
101
|
# File 'lib/mameapns/session.rb', line 99
def reconnect
@connection.reconnect
end
|
#running? ⇒ Boolean
71
72
73
|
# File 'lib/mameapns/session.rb', line 71
def running?
!!@running
end
|
#select(wait_time) ⇒ Object
79
80
81
|
# File 'lib/mameapns/session.rb', line 79
def select(wait_time)
@connection.select(wait_time)
end
|
#start ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/mameapns/session.rb', line 30
def start
@running = true
@thread = Thread.start do
begin
start_session
rescue => e
@on_exception.call(e) if @on_exception
retry
end
end
end
|
#start_session ⇒ Object
44
45
46
|
# File 'lib/mameapns/session.rb', line 44
def start_session
end
|
#stop ⇒ Object
60
61
62
63
64
65
|
# File 'lib/mameapns/session.rb', line 60
def stop
@queue << nil
@running = false
@interruptible_sleep.interrupt
sleep 1 end
|
#wait_stop ⇒ Object
67
68
69
|
# File 'lib/mameapns/session.rb', line 67
def wait_stop
@thread.join
end
|
#write(data) ⇒ Object
87
88
89
|
# File 'lib/mameapns/session.rb', line 87
def write(data)
@connection.write(data)
end
|