Class: Bran::LibUV::Reactor::Collections::Write
Instance Attribute Summary
#item_pool, #sister
Instance Method Summary
collapse
#bond_with, #drop_item, #make_item
Methods inherited from Abstract
#drop_item, #invoke_by_addr, #invoke_by_ident, #invoke_handler, #item_by_ident, #make_item, #pop, #push
Constructor Details
#initialize ⇒ Write
Returns a new instance of Write.
175
176
177
178
179
|
# File 'lib/bran/libuv/reactor/collections.rb', line 175
def initialize(*)
super
@callback = FFI.uv_poll_cb(&@reactor.method(:_write_callback))
@rw_callback = FFI.uv_poll_cb(&@reactor.method(:_rw_callback))
end
|
Instance Method Details
#concrete_alloc_item ⇒ Object
181
182
183
|
# File 'lib/bran/libuv/reactor/collections.rb', line 181
def concrete_alloc_item
@item_pool.pop || FFI.uv_poll_alloc
end
|
#concrete_release_item(item) ⇒ Object
185
186
187
|
# File 'lib/bran/libuv/reactor/collections.rb', line 185
def concrete_release_item(item)
@item_pool << item
end
|
#concrete_sister_share_item(ident, item) ⇒ Object
202
203
204
205
206
|
# File 'lib/bran/libuv/reactor/collections.rb', line 202
def concrete_sister_share_item(ident, item)
Util.error_check "starting the poll writable + writable item",
FFI.uv_poll_start(item,
FFI::UV_READABLE | FFI::UV_WRITABLE, @rw_callback)
end
|
#concrete_sister_unshare_item(ident, item) ⇒ Object
208
209
210
211
|
# File 'lib/bran/libuv/reactor/collections.rb', line 208
def concrete_sister_unshare_item(ident, item)
Util.error_check "restarting the poll writable item",
FFI.uv_poll_start(item, FFI::UV_WRITABLE, @callback)
end
|
#concrete_start_item(ident, item) ⇒ Object
189
190
191
192
193
194
195
|
# File 'lib/bran/libuv/reactor/collections.rb', line 189
def concrete_start_item(ident, item)
Util.error_check "creating the poll writable item",
FFI.uv_poll_init(@reactor.ptr, item, ident)
Util.error_check "starting the poll writable item",
FFI.uv_poll_start(item, FFI::UV_WRITABLE, @callback)
end
|
#concrete_stop_item(ident, item) ⇒ Object
197
198
199
200
|
# File 'lib/bran/libuv/reactor/collections.rb', line 197
def concrete_stop_item(ident, item)
Util.error_check "stopping the poll writable item",
FFI.uv_poll_stop(item)
end
|