Sha256: bcda5d367042a21296681022375dffc29b21c0b2f6bff248e12a1ba32ee8287f

Contents?: true

Size: 786 Bytes

Versions: 2

Compression:

Stored size: 786 Bytes

Contents

require 'rflow/child_process'

class RFlow
  # A message broker process to mediate messages along a connection.
  # The broker runs in a child process and will not return from {spawn!}.
  class Broker < ChildProcess
    class << self
      # Build the broker from the connection configuration.
      # Only supports {RFlow::Configuration::ZMQStreamer} configurations.
      # @param config [RFlow::Configuration::ZMQStreamer] the connection configuration
      # @return [RFlow::Connections::ZMQStreamer]
      def build(config)
        case config.class.name
        when 'RFlow::Configuration::ZMQStreamer'
          RFlow::Connections::ZMQStreamer.new(config)
        else
          raise ArgumentError, 'Only ZMQ brokers currently supported'
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rflow-1.3.2 lib/rflow/broker.rb
rflow-1.3.1 lib/rflow/broker.rb