Class: Idevice::NotificationProxyClient
Overview
Used to receive and post device notifications
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from LibHelpers
included
#initialize
Class Method Details
.attach(opts = {}) ⇒ Object
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/idevice/notification_proxy.rb', line 78
def self.attach(opts={})
_attach_helper("com.apple.mobile.notification_proxy", opts) do |idevice, ldsvc, p_np|
err = C.np_client_new(idevice, ldsvc, p_np)
raise NotificationProxyError, "Notification Proxy Error: #{err}" if err != :SUCCESS
np = p_np.read_pointer
raise NPError, "np_client_new returned a NULL client" if np.null?
return new(np)
end
end
|
.release(ptr) ⇒ Object
70
71
72
73
74
75
76
|
# File 'lib/idevice/notification_proxy.rb', line 70
def self.release(ptr)
C::Freelock.synchronize do
unless ptr.null?
C.np_client_free(ptr)
end
end
end
|
Instance Method Details
#observe_notification(notification_type) ⇒ Object
96
97
98
99
100
|
# File 'lib/idevice/notification_proxy.rb', line 96
def observe_notification(notification_type)
err = C.np_observe_notification(self, notification_type)
raise NotificationProxyError, "Notification Proxy Error: #{err}" if err != :SUCCESS
end
|
#observe_notifications(notification_types) ⇒ Object
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/idevice/notification_proxy.rb', line 102
def observe_notifications(notification_types)
ntypes_ary = []
notification_types.each do |ntype|
ntypes_ary << FFI::MemoryPointer.from_string(ntype)
end
ntypes_ary << nil
ntypes = FFI::MemoryPointer.new(:pointer, ntypes_ary.length)
ntypes_ary.each_with_index do |p, i|
ntypes[i].put_pointer(0, p)
end
err = C.np_observe_notifications(self, ntypes)
raise NotificationProxyError, "Notification Proxy Error: #{err}" if err != :SUCCESS
end
|
#post_notification(notification) ⇒ Object
89
90
91
92
93
94
|
# File 'lib/idevice/notification_proxy.rb', line 89
def post_notification(notification)
err = C.np_post_notification(self, notification)
raise NotificationProxyError, "Notification Proxy Error: #{err}" if err != :SUCCESS
return true
end
|
#set_notify_callback(&block) ⇒ Object
117
118
119
120
121
122
123
|
# File 'lib/idevice/notification_proxy.rb', line 117
def set_notify_callback(&block)
err = C.np_set_notify_callback(self, _cb(&block), nil)
raise NotificationProxyError, "Notification Proxy Error: #{err}" if err != :SUCCESS
@notify_callback = block
return true
end
|