Class: PbActor::BasicProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/pb_actor/basic_proxy.rb

Direct Known Subclasses

AsyncProxy, FutureProxy, Proxy

Instance Method Summary collapse

Constructor Details

#initialize(origin, pid, wr, rd) ⇒ BasicProxy

Returns a new instance of BasicProxy.



5
6
7
# File 'lib/pb_actor/basic_proxy.rb', line 5

def initialize origin, pid, wr, rd
  @origin, @pid, @wr, @rd = origin, pid, wr, rd
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &blk) ⇒ Object

Raises:

  • (ArgumentError)


16
17
18
19
# File 'lib/pb_actor/basic_proxy.rb', line 16

def method_missing method, *args, &blk
  raise ArgumentError, 'actor not support block' if blk
  raise DeadActorError, 'dead actor call' unless alive?
end

Instance Method Details

#alive?Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
# File 'lib/pb_actor/basic_proxy.rb', line 9

def alive?
  # Have any other way to check a process status?
  !timeout(0.001){@rd.eof?}
rescue Timeout::Error => e
  true
end

#to_sObject



21
22
23
# File 'lib/pb_actor/basic_proxy.rb', line 21

def to_s
  "#{self.class}(#{@origin.class})"
end