Class: Concurrent::Actor::Envelope
- Inherits:
-
Object
- Object
- Concurrent::Actor::Envelope
- Includes:
- TypeCheck
- Defined in:
- lib/concurrent-ruby-edge/concurrent/actor/envelope.rb
Instance Attribute Summary collapse
- #address ⇒ Object readonly
-
#future ⇒ Edge::Future
readonly
A future which becomes resolved after message is processed.
-
#message ⇒ Object
readonly
A message.
-
#sender ⇒ Reference, Thread
readonly
An actor or thread sending the message.
Instance Method Summary collapse
- #address_path ⇒ Object
-
#initialize(message, future, sender, address) ⇒ Envelope
constructor
A new instance of Envelope.
- #reject!(error) ⇒ Object
- #sender_path ⇒ Object
Methods included from TypeCheck
#Child!, #Child?, #Match!, #Match?, #Type!, #Type?
Constructor Details
#initialize(message, future, sender, address) ⇒ Envelope
Returns a new instance of Envelope.
19 20 21 22 23 24 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 19 def initialize(, future, sender, address) @message = @future = Type! future, Promises::ResolvableFuture, NilClass @sender = Type! sender, Reference, Thread @address = Type! address, Reference end |
Instance Attribute Details
#address ⇒ Object (readonly)
17 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 17 attr_reader :message, :future, :sender, :address |
#future ⇒ Edge::Future (readonly)
Returns a future which becomes resolved after message is processed.
17 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 17 attr_reader :message, :future, :sender, :address |
#message ⇒ Object (readonly)
Returns a message.
17 18 19 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 17 def @message end |
#sender ⇒ Reference, Thread (readonly)
Returns an actor or thread sending the message.
17 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 17 attr_reader :message, :future, :sender, :address |
Instance Method Details
#address_path ⇒ Object
34 35 36 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 34 def address_path address.path end |
#reject!(error) ⇒ Object
38 39 40 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 38 def reject!(error) future.reject error unless future.nil? end |
#sender_path ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/concurrent-ruby-edge/concurrent/actor/envelope.rb', line 26 def sender_path if sender.is_a? Reference sender.path else sender.to_s end end |