Module: RSMP::Receiver

Includes:
Inspect
Included in:
Collector, Queue
Defined in:
lib/rsmp/collect/receiver.rb

Overview

Receives items from a Distributor when included as a receiver. Optionally filter messages using a Filter.

Instance Method Summary collapse

Methods included from Inspect

#inspect, #inspector

Instance Method Details

#accept_message?(message) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/rsmp/collect/receiver.rb', line 26

def accept_message?(message)
  @filter.nil? || @filter.accept?(message)
end

#handle_message(message) ⇒ Object



34
# File 'lib/rsmp/collect/receiver.rb', line 34

def handle_message(message); end

#initialize_receiver(distributor, filter: nil) ⇒ Object



7
8
9
10
# File 'lib/rsmp/collect/receiver.rb', line 7

def initialize_receiver(distributor, filter: nil)
  @distributor = distributor
  @filter = filter
end

#receive(message) ⇒ Object



20
21
22
# File 'lib/rsmp/collect/receiver.rb', line 20

def receive(message)
  handle_message(message) if accept_message?(message)
end

#receive_error(error, options = {}) ⇒ Object



24
# File 'lib/rsmp/collect/receiver.rb', line 24

def receive_error(error, options = {}); end

#reject_message?(message) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/rsmp/collect/receiver.rb', line 30

def reject_message?(message)
  !accept_message?(message)
end

#start_receivingObject



12
13
14
# File 'lib/rsmp/collect/receiver.rb', line 12

def start_receiving
  @distributor.add_receiver(self)
end

#stop_receivingObject



16
17
18
# File 'lib/rsmp/collect/receiver.rb', line 16

def stop_receiving
  @distributor.remove_receiver(self)
end