Class: Carnivore::Source::Actor
- Inherits:
-
Carnivore::Source
- Object
- Carnivore::Source
- Carnivore::Source::Actor
- Defined in:
- lib/carnivore-actor/actor.rb
Overview
Actor based Carnivore source
Instance Method Summary collapse
-
#receive(*args) ⇒ Array<Object>
Receive messages.
-
#setup(*args) ⇒ TrueClass
Initialize source storage.
-
#transmit(payload, *args) ⇒ TrueClass
Send messages.
Instance Method Details
#receive(*args) ⇒ Array<Object>
Receive messages
20 21 22 23 24 25 26 27 28 |
# File 'lib/carnivore-actor/actor.rb', line 20 def receive(*args) = wait(:new_message) begin = MultiJson.load() .respond_to?(:to_smash) ? .to_smash : rescue MultiJson::ParseError end end |
#setup(*args) ⇒ TrueClass
Initialize source storage
13 14 15 |
# File 'lib/carnivore-actor/actor.rb', line 13 def setup(*args) true end |
#transmit(payload, *args) ⇒ TrueClass
Note:
if ‘:remote_name` exists in arguments, transmission is made to “remote” source instead of self (jackal hack)
Send messages
36 37 38 39 40 41 42 43 44 |
# File 'lib/carnivore-actor/actor.rb', line 36 def transmit(payload, *args) if(arguments[:remote_name]) Carnivore::Supervisor.supervisor[arguments[:remote_name]].async.transmit(payload) true else signal(:new_message, MultiJson.dump(payload)) true end end |