Class: Dynflow::Connectors::Abstract

Inherits:
Object
  • Object
show all
Includes:
Algebrick::Matching, Algebrick::TypeCheck
Defined in:
lib/dynflow/connectors/abstract.rb

Direct Known Subclasses

Database, Direct

Instance Method Summary collapse

Instance Method Details

#prune_undeliverable_envelopes(world) ⇒ Object

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/dynflow/connectors/abstract.rb', line 28

def prune_undeliverable_envelopes(world)
  raise NotImplementedError
end

#receive(world, envelope) ⇒ Object

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



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/dynflow/connectors/abstract.rb', line 34

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) ⇒ Object

Raises:

  • (NotImplementedError)


24
25
26
# File 'lib/dynflow/connectors/abstract.rb', line 24

def send(envelope)
  raise NotImplementedError
end

#start_listening(world) ⇒ Object

Raises:

  • (NotImplementedError)


8
9
10
# File 'lib/dynflow/connectors/abstract.rb', line 8

def start_listening(world)
  raise NotImplementedError
end

#stop_listening(world, timeout = nil) ⇒ Object

Raises:

  • (NotImplementedError)


16
17
18
# File 'lib/dynflow/connectors/abstract.rb', line 16

def stop_listening(world, timeout = nil)
  raise NotImplementedError
end

#stop_receiving_new_work(_, timeout = nil) ⇒ Object

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/dynflow/connectors/abstract.rb', line 12

def stop_receiving_new_work(_, timeout = nil)
  raise NotImplementedError
end

#terminateObject

Raises:

  • (NotImplementedError)


20
21
22
# File 'lib/dynflow/connectors/abstract.rb', line 20

def terminate
  raise NotImplementedError
end