Sha256: 9792e159ad2b52c18b67de35a3a6837e644aae7e873d7964c105c2c29f8feb2a
Contents?: true
Size: 1.71 KB
Versions: 4
Compression:
Stored size: 1.71 KB
Contents
# A proxy object returned from Celluloid::Actor.new/new_link which converts # the normal Ruby method protocol into an inter-actor message protocol class Celluloid::Proxy::Cell < Celluloid::Proxy::Sync # Used for reflecting on proxy objects themselves def __class__ ::Celluloid::Proxy::Cell end def initialize(mailbox, actor_proxy, klass) super(mailbox, klass) @actor_proxy = actor_proxy @sync_proxy = ::Celluloid::Proxy::Sync.new(mailbox, klass) @async_proxy = ::Celluloid::Proxy::Async.new(mailbox, klass) @future_proxy = ::Celluloid::Proxy::Future.new(mailbox, klass) end def _send_(meth, *args, &block) method_missing :__send__, meth, *args, &block end def inspect method_missing :inspect rescue ::Celluloid::DeadActorError "#<::Celluloid::Proxy::Cell(#{@klass}) dead>" end def method(name) ::Celluloid::Internals::Method.new(self, name) end alias_method :sync, :method_missing # Obtain an async proxy or explicitly invoke a named async method def async(method_name = nil, *args, &block) if method_name @async_proxy.method_missing method_name, *args, &block else @async_proxy end end # Obtain a future proxy or explicitly invoke a named future method def future(method_name = nil, *args, &block) if method_name @future_proxy.method_missing method_name, *args, &block else @future_proxy end end def alive? @actor_proxy.alive? end def dead? @actor_proxy.dead? end def thread @actor_proxy.thread end # Terminate the associated actor def terminate @actor_proxy.terminate end # Terminate the associated actor asynchronously def terminate! @actor_proxy.terminate! end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
celluloid-0.17.2 | lib/celluloid/proxy/cell.rb |
celluloid-0.17.1.2 | lib/celluloid/proxy/cell.rb |
celluloid-0.17.1.1 | lib/celluloid/proxy/cell.rb |
celluloid-0.17.1 | lib/celluloid/proxy/cell.rb |