Module: Actor
- Included in:
- Controls::Actor::Example
- Defined in:
- lib/actor/controls/statistics/elapsed_time/standard_deviation.rb,
lib/actor/actor.rb,
lib/actor/queue.rb,
lib/actor/message.rb,
lib/actor/time_unit.rb,
lib/actor/statistics.rb,
lib/actor/supervisor.rb,
lib/actor/queue/reader.rb,
lib/actor/controls/time.rb,
lib/actor/controls/actor.rb,
lib/actor/statistics/copy.rb,
lib/actor/controls/message.rb,
lib/actor/messaging/reader.rb,
lib/actor/messaging/writer.rb,
lib/actor/queue/assertions.rb,
lib/actor/statistics/timer.rb,
lib/actor/messaging/address.rb,
lib/actor/controls/statistics.rb,
lib/actor/controls/time/clock.rb,
lib/actor/controls/statistics/timer.rb,
lib/actor/messaging/reader/substitute.rb,
lib/actor/messaging/writer/substitute.rb,
lib/actor/controls/statistics/elapsed_time.rb,
lib/actor/test_fixtures/parallel_iteration.rb,
lib/actor/test_fixtures/sample_actor_status.rb,
lib/actor/controls/statistics/elapsed_time/average.rb,
lib/actor/controls/statistics/elapsed_time/maximum.rb,
lib/actor/controls/statistics/elapsed_time/minimum.rb
Overview
Defined Under Namespace
Modules: Controls, Destructure, Message, Messaging, Spawn, Start, State, TestFixtures, TimeUnit, UpdateStatistics
Classes: Queue, Statistics, Supervisor
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#actor_address ⇒ Object
Returns the value of attribute actor_address.
12
13
14
|
# File 'lib/actor/actor.rb', line 12
def actor_address
@actor_address
end
|
#actor_state ⇒ Object
Returns the value of attribute actor_state.
13
14
15
|
# File 'lib/actor/actor.rb', line 13
def actor_state
@actor_state
end
|
#reader ⇒ Object
50
51
52
|
# File 'lib/actor/actor.rb', line 50
def reader
@reader ||= Reader::Substitute.new
end
|
Class Method Details
.included(cls) ⇒ Object
2
3
4
5
6
7
8
9
10
|
# File 'lib/actor/actor.rb', line 2
def self.included cls
cls.class_exec do
extend Destructure
extend Spawn
extend Start
prepend UpdateStatistics
end
end
|
Instance Method Details
#action ⇒ Object
16
17
|
# File 'lib/actor/actor.rb', line 16
def action
end
|
#actor_statistics ⇒ Object
19
20
21
|
# File 'lib/actor/actor.rb', line 19
def actor_statistics
@actor_statistics ||= Statistics.new
end
|
#handle(_) ⇒ Object
23
24
|
# File 'lib/actor/actor.rb', line 23
def handle _
end
|
#handle_system_message(message) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/actor/actor.rb', line 26
def handle_system_message message
case message
when Message::Pause then
self.actor_state = State::Paused
when Message::Resume then
self.actor_state = State::Running
when Message::Stop then
self.actor_state = State::Running
raise StopIteration
when Message::RecordStatus then
status = message.status
Statistics::Copy.(status, actor_statistics)
status.state = actor_state
status.actor_class = self.class.name
Messaging::Writer.(status, message.reply_address)
end
end
|
#run_loop ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/actor/actor.rb', line 54
def run_loop
loop do
while message = reader.(wait: actor_state == State::Paused)
handle message
if message.is_a? Message
handle_system_message message
end
end
action if actor_state == State::Running
Thread.pass
end
self.actor_state = State::Stopped
rescue => error
self.actor_state = State::Crashed
raise error
end
|