abstract class LavinMQ::Exchange
 
  - LavinMQ::Exchange
 - Reference
 - Object
 
Included Modules
Direct Known Subclasses
- LavinMQ::ConsistentHashExchange
 - LavinMQ::DefaultExchange
 - LavinMQ::DirectExchange
 - LavinMQ::FanoutExchange
 - LavinMQ::HeadersExchange
 - LavinMQ::TopicExchange
 
Defined in:
lavinmq/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 : Queue, routing_key : String, headers : AMQP::Table | Nil)
 - #bind(destination : Exchange, routing_key : String, headers : AMQP::Table | Nil)
 - #binding_details(key, destination)
 - #bindings_details
 - #clear_policy
 - 
        #current_stats_details
        
          
Like stats_details but without log
 - #delayed? : Bool
 - #details_tuple
 - #do_exchange_matches(routing_key : String, headers : AMQP::Table | Nil, & : Exchange -> _)
 - #do_queue_matches(routing_key : String, headers : AMQP::Table | Nil, & : Queue -> _)
 - #durable? : Bool
 - #exchange_bindings : Hash({String, AMQ::Protocol::Table?}, Set(LavinMQ::Exchange))
 - #exchange_matches(routing_key : String, headers = nil, &blk : Exchange -> _)
 - #handle_arguments
 - #in_use?
 - #internal? : Bool
 - #match?(type, durable, auto_delete, internal, arguments)
 - #match?(frame : AMQP::Frame)
 - #name : String
 - #operator_policy : OperatorPolicy | Nil
 - #policy : Policy | Nil
 - #publish_in_count : UInt64
 - #publish_in_count=(publish_in_count : UInt64)
 - #publish_out_count : UInt64
 - #publish_out_count=(publish_out_count : UInt64)
 - #queue_bindings : Hash({String, AMQ::Protocol::Table?}, Set(LavinMQ::Queue))
 - #queue_matches(routing_key : String, headers = nil, &blk : Queue -> _)
 - #stats_details
 - #to_json(json : JSON::Builder)
 - #type : String
 - #unbind(destination : Queue, routing_key : String, headers : AMQP::Table | Nil)
 - #unbind(destination : Exchange, routing_key : String, headers : AMQP::Table | Nil)
 - #unroutable_count : UInt64
 - #unroutable_count=(unroutable_count : UInt64)
 - #update_rates : Nil
 - #vhost : LavinMQ::VHost
 
Instance methods inherited from module Observable
  
  
    
      notify_observers(event : Symbol, data : Object | Nil = nil)
    notify_observers, 
    
  
    
      register_observer(observer : Observer)
    register_observer, 
    
  
    
      unregister_observer(observer : Observer)
    unregister_observer
    
  
    
    
    
  
    
  Instance methods inherited from module LavinMQ::SortableJSON
  
  
    
      details_tuple
    details_tuple, 
    
  
    
      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
    
  
    
    
    
  
    
    
    
    
  
    
    
    
    
  
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 do_exchange_matches(routing_key : String, headers : AMQP::Table | Nil, & : Exchange -> _)
        #