class Celluloid::Proxy::Cell

A proxy object returned from Celluloid::Actor.new/new_link which converts the normal Ruby method protocol into an inter-actor message protocol

Public Class Methods

new(mailbox, actor_proxy, klass) click to toggle source
Calls superclass method Celluloid::Proxy::AbstractCall.new
# 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

Public Instance Methods

_send_(meth, *args, &block) click to toggle source
# File lib/celluloid/proxy/cell.rb, line 11
def _send_(meth, *args, &block)
  method_missing :__send__, meth, *args, &block
end
alive?() click to toggle source
# File lib/celluloid/proxy/cell.rb, line 45
def alive?
  @actor_proxy.alive?
end
async(method_name = nil, *args, &block) click to toggle source

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
dead?() click to toggle source
# File lib/celluloid/proxy/cell.rb, line 49
def dead?
  @actor_proxy.dead?
end
future(method_name = nil, *args, &block) click to toggle source

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
inspect() click to toggle source
# File lib/celluloid/proxy/cell.rb, line 15
def inspect
  method_missing :inspect
rescue ::Celluloid::DeadActorError
  "#<::Celluloid::Proxy::Cell(#{@klass}) dead>"
end
method(name) click to toggle source
# File lib/celluloid/proxy/cell.rb, line 21
def method(name)
  ::Celluloid::Internals::Method.new(self, name)
end
terminate() click to toggle source

Terminate the associated actor

# File lib/celluloid/proxy/cell.rb, line 58
def terminate
  @actor_proxy.terminate
end
terminate!() click to toggle source

Terminate the associated actor asynchronously

# File lib/celluloid/proxy/cell.rb, line 63
def terminate!
  @actor_proxy.terminate!
end
thread() click to toggle source
# File lib/celluloid/proxy/cell.rb, line 53
def thread
  @actor_proxy.thread
end