Sha256: 5494642831f886dc255fe8de712d0962af0ffe818d6f165ae767c4b65a485bee
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module MessageDriver module Adapters class Base include Logging def contexts @contexts ||= [] end def initialize(configuration) raise "Must be implemented in subclass" end def new_context ctx = build_context contexts << ctx ctx end def build_context raise "Must be implemented in subclass" end def stop if @contexts ctxs = @contexts @contexts = [] ctxs.each { |ctx| ctx.invalidate } end end end class ContextBase include Logging attr_reader :adapter attr_accessor :valid def initialize(adapter) @adapter = adapter @valid = true end def publish(destination, body, headers={}, properties={}) raise "Must be implemented in subclass" end def pop_message(destination, options={}) raise "Must be implemented in subclass" end def subscribe(destination, options={}, &consumer) raise "#subscribe is not supported by #{adapter.class}" end def create_destination(name, dest_options={}, message_props={}) raise "Must be implemented in subclass" end def valid? @valid end def invalidate @valid = false end def supports_transactions? false end def supports_client_acks? false end def supports_subscriptions? false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
message-driver-0.2.2 | lib/message_driver/adapters/base.rb |