class Dynflow::Connectors::Abstract

Public Instance Methods

prune_undeliverable_envelopes(world) click to toggle source
# File lib/dynflow/connectors/abstract.rb, line 29
def prune_undeliverable_envelopes(world)
  raise NotImplementedError
end
receive(world, envelope) click to toggle source

we need to pass the world, as the connector can be shared between words: we need to know the one to send the message to

# File lib/dynflow/connectors/abstract.rb, line 35
def receive(world, envelope)
  Type! envelope, Dispatcher::Envelope
  Telemetry.with_instance { |t| t.increment_counter(:dynflow_connector_envelopes, 1, :world => world.id, :direction => 'incoming') }
  match(envelope.message,
    (on Dispatcher::Ping do
       response_envelope = envelope.build_response_envelope(Dispatcher::Pong, world)
       send(response_envelope)
     end),
    (on Dispatcher::Request do
       world.executor_dispatcher.tell([:handle_request, envelope])
     end),
    (on Dispatcher::Response do
       world.client_dispatcher.tell([:dispatch_response, envelope])
     end))
end
send(envelope) click to toggle source
# File lib/dynflow/connectors/abstract.rb, line 25
def send(envelope)
  raise NotImplementedError
end
start_listening(world) click to toggle source
# File lib/dynflow/connectors/abstract.rb, line 9
def start_listening(world)
  raise NotImplementedError
end
stop_listening(world, timeout = nil) click to toggle source
# File lib/dynflow/connectors/abstract.rb, line 17
def stop_listening(world, timeout = nil)
  raise NotImplementedError
end
stop_receiving_new_work(_, timeout = nil) click to toggle source
# File lib/dynflow/connectors/abstract.rb, line 13
def stop_receiving_new_work(_, timeout = nil)
  raise NotImplementedError
end
terminate() click to toggle source
# File lib/dynflow/connectors/abstract.rb, line 21
def terminate
  raise NotImplementedError
end