abstract class
   LavinMQ::AMQP::Exchange
  
  - LavinMQ::AMQP::Exchange
 - LavinMQ::Exchange
 - Reference
 - Object
 
Included Modules
- LavinMQ::Observable(LavinMQ::ExchangeEvent)
 - LavinMQ::PolicyTarget
 - LavinMQ::SortableJSON
 - LavinMQ::Stats
 
Direct Known Subclasses
- LavinMQ::AMQP::ConsistentHashExchange
 - LavinMQ::AMQP::DefaultExchange
 - LavinMQ::AMQP::DirectExchange
 - LavinMQ::AMQP::FanoutExchange
 - LavinMQ::AMQP::HeadersExchange
 - LavinMQ::AMQP::TopicExchange
 - LavinMQ::MQTT::Exchange
 
Defined in:
lavinmq/amqp/exchange/exchange.crConstant Summary
- 
        MAX_NAME_LENGTH = 
256 - 
        REPUBLISH_HEADERS = 
{"x-head", "x-tail", "x-from"} 
Constructors
Instance Method Summary
- #alternate_exchange : String?
 - #apply_policy(policy : Policy | Nil, operator_policy : OperatorPolicy | Nil)
 - #arguments : AMQ::Protocol::Table
 - #auto_delete? : Bool
 - #bind(destination : LavinMQ::Destination, routing_key, headers = nil) : Bool
 - #bind(destination : AMQP::Destination, routing_key : String, headers : AMQP::Table | Nil)
 - #bindings_details : Iterator(BindingDetails)
 - #clear_policy
 - 
        #current_stats_details
        
          
Like stats_details but without log
 - #dedup_count : UInt64
 - #dedup_count=(dedup_count : UInt64)
 - #delayed? : Bool
 - #details_tuple
 - #do_publish(msg : Message, immediate : Bool, queues : Set(LavinMQ::Queue) = Set(LavinMQ::Queue).new, exchanges : Set(LavinMQ::Exchange) = Set(LavinMQ::Exchange).new) : Int32
 - #durable? : Bool
 - #each_destination(routing_key : String, headers : AMQP::Table | Nil, & : LavinMQ::Destination -> )
 - #find_queues(routing_key : String, headers : AMQP::Table | Nil, queues : Set(LavinMQ::Queue) = Set(LavinMQ::Queue).new, exchanges : Set(LavinMQ::Exchange) = Set(LavinMQ::Exchange).new) : Nil
 - #handle_arguments
 - #in_use?
 - #internal? : Bool
 - #match?(type, durable, auto_delete, internal, arguments)
 - #match?(frame : AMQP::Frame)
 - #name : String
 - #notify_observers(event : LavinMQ::ExchangeEvent, data : Object | Nil = nil)
 - #operator_policy : OperatorPolicy | Nil
 - #policy : Policy | Nil
 - #publish(msg : Message, immediate : Bool, queues : Set(LavinMQ::Queue) = Set(LavinMQ::Queue).new, exchanges : Set(LavinMQ::Exchange) = Set(LavinMQ::Exchange).new) : Int32
 - #publish_in_count : UInt64
 - #publish_in_count=(publish_in_count : UInt64)
 - #publish_out_count : UInt64
 - #publish_out_count=(publish_out_count : UInt64)
 - #register_observer(observer : LavinMQ::Observer(LavinMQ::ExchangeEvent))
 - #stats_details
 - #to_json(json : JSON::Builder)
 - #type : String
 - #unbind(destination : AMQP::Destination, routing_key : String, headers : AMQP::Table | Nil)
 - #unregister_observer(observer : LavinMQ::Observer(LavinMQ::ExchangeEvent))
 - #unroutable_count : UInt64
 - #unroutable_count=(unroutable_count : UInt64)
 - #update_rates : Nil
 - #vhost : LavinMQ::VHost
 
Instance methods inherited from module LavinMQ::SortableJSON
  
  
    
      details_tuple
    details_tuple, 
    
  
    
      search_match?(value : String)search_match?(value : Regex) search_match?, to_json(json : JSON::Builder) to_json
Macros inherited from module LavinMQ::Stats
  
  
    
      rate_stats(stats_keys, log_keys = [] of ::String)
    rate_stats
    
  
    
      
  Instance methods inherited from module LavinMQ::PolicyTarget
  
  
    
      apply_policy(policy : Policy | Nil, operator_policy : OperatorPolicy | Nil)
    apply_policy, 
    
  
    
      clear_policy
    clear_policy, 
    
  
    
      operator_policy : OperatorPolicy | Nil
    operator_policy, 
    
  
    
      policy : Policy | Nil
    policy
    
  
      
      
      
    
      
      
      
      
    
      
  Instance methods inherited from module LavinMQ::SortableJSON
  
  
    
      details_tuple
    details_tuple, 
    
  
    
      search_match?(value : String)search_match?(value : Regex) search_match?, to_json(json : JSON::Builder) to_json
Constructor Detail
        
        def self.new(vhost : VHost, name : String, durable : Bool = false, auto_delete : Bool = false, internal : Bool = false, arguments : AMQ::Protocol::Table = AMQP::Table.new)
        #
      
      
      Instance Method Detail
        abstract 
        def bind(destination : AMQP::Destination, routing_key : String, headers : AMQP::Table | Nil)
        #
      
      
      
        
        def do_publish(msg : Message, immediate : Bool, queues : Set(LavinMQ::Queue) = Set(LavinMQ::Queue).new, exchanges : Set(LavinMQ::Exchange) = Set(LavinMQ::Exchange).new) : Int32
        #
      
      
      
        abstract 
        def each_destination(routing_key : String, headers : AMQP::Table | Nil, & : LavinMQ::Destination -> )
        #
      
      
      
        
        def find_queues(routing_key : String, headers : AMQP::Table | Nil, queues : Set(LavinMQ::Queue) = Set(LavinMQ::Queue).new, exchanges : Set(LavinMQ::Exchange) = Set(LavinMQ::Exchange).new) : Nil
        #
      
      
      
        
        def publish(msg : Message, immediate : Bool, queues : Set(LavinMQ::Queue) = Set(LavinMQ::Queue).new, exchanges : Set(LavinMQ::Exchange) = Set(LavinMQ::Exchange).new) : Int32
        #
      
      
      
        abstract 
        def unbind(destination : AMQP::Destination, routing_key : String, headers : AMQP::Table | Nil)
        #