Class: Plumbing::Actor::Worker

Inherits:
Literal::Data
  • Object
show all
Defined in:
lib/plumbing/actor/worker.rb

Direct Known Subclasses

Async, Inline, Threaded

Instance Method Summary collapse

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


16
# File 'lib/plumbing/actor/worker.rb', line 16

def active? = raise NotImplementedError

#after(delay, method:, sender: nil, params: {}, block: nil) ⇒ Object

Deliver method to this actor after delay seconds. Returns a Deferral handle. Base raises; each worker implements its own timer.

Raises:

  • (NotImplementedError)


26
# File 'lib/plumbing/actor/worker.rb', line 26

def after(delay, method:, sender: nil, params: {}, block: nil) = raise NotImplementedError

#build_message(method:, sender:, params:, block:) ⇒ Object



31
# File 'lib/plumbing/actor/worker.rb', line 31

def build_message(method:, sender:, params:, block:) = message_class.new(actor: @actor, method:, sender:, params:, block:)

#callObject Also known as: start

Raises:

  • (NotImplementedError)


11
# File 'lib/plumbing/actor/worker.rb', line 11

def call = raise NotImplementedError

#cancel_deferred(deferral) ⇒ Object

Cancel a previously-scheduled deferral (race-safe no-op flag).



29
# File 'lib/plumbing/actor/worker.rb', line 29

def cancel_deferred(deferral) = deferral&.cancel

#dispatch(message) ⇒ Object

Raises:

  • (NotImplementedError)


35
# File 'lib/plumbing/actor/worker.rb', line 35

def dispatch(message) = raise NotImplementedError

#message_classObject



33
# File 'lib/plumbing/actor/worker.rb', line 33

def message_class = Plumbing::Actor::Message

#post(method, sender: nil, **params, &block) ⇒ Object



18
19
20
21
22
# File 'lib/plumbing/actor/worker.rb', line 18

def post method, sender: nil, **params, &block
  build_message(method: method, sender: sender, params: params, block: block).tap do |message|
    dispatch message
  end
end

#stopObject

Raises:

  • (NotImplementedError)


14
# File 'lib/plumbing/actor/worker.rb', line 14

def stop = raise NotImplementedError