Class/Module Index [+]

Quicksearch

Celluloid::ActorProxy

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

Attributes

thread[R]

Public Class Methods

new(actor) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 7
def initialize(actor)
  @thread = actor.thread

  super(actor.mailbox, actor.subject.class.to_s)
  @sync_proxy   = SyncProxy.new(@mailbox, @klass)
  @async_proxy  = AsyncProxy.new(@mailbox, @klass)
  @future_proxy = FutureProxy.new(@mailbox, @klass)
end

Public Instance Methods

_send_(meth, *args, &block) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 24
def _send_(meth, *args, &block)
  method_missing :__send__, meth, *args, &block
end
alive?() click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 58
def alive?
  @mailbox.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/proxies/actor_proxy.rb, line 69
def async(method_name = nil, *args, &block)
  if method_name
    @async_proxy.method_missing method_name, *args, &block
  else
    @async_proxy
  end
end
class() click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 16
def class
  method_missing :__send__, :class
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/proxies/actor_proxy.rb, line 78
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/proxies/actor_proxy.rb, line 28
def inspect
  method_missing :inspect
rescue DeadActorError
  "#<Celluloid::ActorProxy(#{@klass}) dead>"
end
is_a?(klass) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 38
def is_a?(klass)
  method_missing :is_a?, klass
end
kind_of?(klass) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 42
def kind_of?(klass)
  method_missing :kind_of?, klass
end
method(name) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 54
def method(name)
  Method.new(self, name)
end
method_missing(meth, *args, &block) click to toggle source

method_missing black magic to call bang predicate methods asynchronously

# File lib/celluloid/legacy.rb, line 4
def method_missing(meth, *args, &block)
  # bang methods are async calls
  if meth.match(/!$/)
    Logger.deprecate("'bang method'-style async syntax is deprecated and will be removed in Celluloid 1.0." +
      "Call async methods with 'actor.async.method'.")

    unbanged_meth = meth.to_s
    unbanged_meth.slice!(-1, 1)
    async unbanged_meth, *args, &block
  else
    super
  end
end
Also aliased as: sync
methods(include_ancestors = true) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 50
def methods(include_ancestors = true)
  method_missing :methods, include_ancestors
end
name() click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 34
def name
  method_missing :name
end
respond_to?(meth, include_private = false) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 46
def respond_to?(meth, include_private = false)
  method_missing :respond_to?, meth, include_private
end
send(meth, *args, &block) click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 20
def send(meth, *args, &block)
  method_missing :send, meth, *args, &block
end
sync(meth, *args, &block) click to toggle source
Alias for: method_missing
terminate() click to toggle source

Terminate the associated actor

# File lib/celluloid/proxies/actor_proxy.rb, line 87
def terminate
  terminate!
  Actor.join(self)
  nil
end
terminate!() click to toggle source

Terminate the associated actor asynchronously

# File lib/celluloid/proxies/actor_proxy.rb, line 94
def terminate!
  ::Kernel.raise DeadActorError, "actor already terminated" unless alive?
  @mailbox << TerminationRequest.new
end
to_s() click to toggle source
# File lib/celluloid/proxies/actor_proxy.rb, line 62
def to_s
  method_missing :to_s
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.