Class: Dynflow::Connectors::Direct

Inherits:
Abstract
  • Object
show all
Defined in:
lib/dynflow/connectors/direct.rb

Defined Under Namespace

Classes: Core

Instance Method Summary collapse

Methods inherited from Abstract

#receive, #terminate

Constructor Details

#initialize(world = nil) ⇒ Direct

Returns a new instance of Direct.



49
50
51
52
# File 'lib/dynflow/connectors/direct.rb', line 49

def initialize(world = nil)
  @core = Core.spawn('connector-direct-core', self)
  start_listening(world) if world
end

Instance Method Details

#prune_undeliverable_envelopes(_world) ⇒ Object



71
72
73
74
# File 'lib/dynflow/connectors/direct.rb', line 71

def prune_undeliverable_envelopes(_world)
  # This is a noop
  0
end

#send(envelope) ⇒ Object



66
67
68
69
# File 'lib/dynflow/connectors/direct.rb', line 66

def send(envelope)
  Telemetry.with_instance { |t| t.increment_counter(:dynflow_connector_envelopes, 1, :world => envelope.sender_id) }
  @core.ask([:handle_envelope, envelope])
end

#start_listening(world) ⇒ Object



54
55
56
# File 'lib/dynflow/connectors/direct.rb', line 54

def start_listening(world)
  @core.ask([:start_listening, world])
end

#stop_listening(world, timeout = nil) ⇒ Object



62
63
64
# File 'lib/dynflow/connectors/direct.rb', line 62

def stop_listening(world, timeout = nil)
  @core.ask([:stop_listening, world]).wait(timeout)
end

#stop_receiving_new_work(world, timeout = nil) ⇒ Object



58
59
60
# File 'lib/dynflow/connectors/direct.rb', line 58

def stop_receiving_new_work(world, timeout = nil)
  @core.ask([:stop_receiving_new_work, world]).wait(timeout)
end