A proxy object returned from Celluloid::Actor.new/new_link which converts the normal Ruby method protocol into an inter-actor message protocol
# File lib/celluloid/proxy/cell.rb, line 4 def initialize(mailbox, actor_proxy, klass) super(mailbox, klass) @actor_proxy = actor_proxy @async_proxy = ::Celluloid::Proxy::Async.new(mailbox, klass) @future_proxy = ::Celluloid::Proxy::Future.new(mailbox, klass) end
# File lib/celluloid/proxy/cell.rb, line 11 def _send_(meth, *args, &block) method_missing :__send__, meth, *args, &block end
# File lib/celluloid/proxy/cell.rb, line 45 def alive? @actor_proxy.alive? end
Obtain an async proxy or explicitly invoke a named async method
# File lib/celluloid/proxy/cell.rb, line 28 def async(method_name = nil, *args, &block) if method_name @async_proxy.method_missing method_name, *args, &block else @async_proxy end end
# File lib/celluloid/proxy/cell.rb, line 49 def dead? @actor_proxy.dead? end
Obtain a future proxy or explicitly invoke a named future method
# File lib/celluloid/proxy/cell.rb, line 37 def future(method_name = nil, *args, &block) if method_name @future_proxy.method_missing method_name, *args, &block else @future_proxy end end
# File lib/celluloid/proxy/cell.rb, line 15 def inspect method_missing :inspect rescue ::Celluloid::DeadActorError "#<::Celluloid::Proxy::Cell(#{@klass}) dead>" end
# File lib/celluloid/proxy/cell.rb, line 21 def method(name) ::Celluloid::Internals::Method.new(self, name) end
Terminate the associated actor
# File lib/celluloid/proxy/cell.rb, line 58 def terminate @actor_proxy.terminate end
Terminate the associated actor asynchronously
# File lib/celluloid/proxy/cell.rb, line 63 def terminate! @actor_proxy.terminate! end
# File lib/celluloid/proxy/cell.rb, line 53 def thread @actor_proxy.thread end