class

LavinMQ::VHost

Inherits LavinMQ::Stats < LavinMQ::SortableJSON < Reference < Object

Constants

DEAD_LETTER_KEYS = {"dead_lettered_delivery_limit_disabled", "dead_lettered_delivery_limit_at_most_once", "dead_lettered_expired_disabled", "dead_lettered_expired_at_most_once", "dead_lettered_maxlen_disabled", "dead_lettered_maxlen_at_most_once", "dead_lettered_rejected_disabled", "dead_lettered_rejected_at_most_once"}
FEDERATION_UPSTREAM = "federation-upstream"
FEDERATION_UPSTREAM_SET = "federation-upstream-set"
Log = LavinMQ::Log.for("vhost")
SHOVEL = "shovel"
STATS_KEYS = {"channel_closed", "channel_created", "connection_closed", "connection_created", "queue_declared", "queue_deleted", "ack", "deliver", "deliver_no_ack", "deliver_get", "get", "get_no_ack", "publish", "confirm", "redeliver", "reject", "return_unroutable", "consumer_added", "consumer_removed", "recv_oct", "send_oct"}

Constructors

new(name : String, server_data_dir : String, users : Auth::UserStore, replicator : Clustering::Replicator | Nil, persister : Persister, description : String = "", tags : Array(String) = Array(String).new(0), mqtt_default_group = true)
Source

Instance methods

ack_count
Source
add_connection(client : Client)
Source
add_operator_policy(name : String, pattern : String, apply_to : String, definition : Hash(String, JSON::Any), priority : Int8, save = true, apply = true) : OperatorPolicy
Source
add_parameter(p : Parameter, save = true, apply = true)
Source
add_policy(name : String, pattern : String, apply_to : String, definition : Hash(String, JSON::Any), priority : Int8, save = true, apply = true) : Policy
Source
add_recv_bytes(bytes : UInt64) : Nil
Source
add_send_bytes(bytes : UInt64) : Nil
Source
apply(f, loading = false, fsync = true) : Bool
Source
apply_policies(resources : Array(Queue | Exchange) | Nil = nil)

Each policy change spawns its own run, and runs can overlap. Each run takes a generation along with its snapshot of the policies, and a resource skips a run older than the newest one it has applied, so a run that read the policies before a later change can't overwrite that change's run. No lock is held while applying: applying a policy can take other locks, e.g. a delayed-message policy registers a queue.

Source
bind_exchange(destination, source, routing_key, arguments = AMQP::Table.new, fsync = true)
Source
bind_queue(destination, source, routing_key, arguments = AMQP::Table.new, fsync = true)
Source
channel_closed_count
Source
channel_created_count
Source
close(reason = "Broker shutdown")
Source
closed
Source
closed?
Source
confirm_count
Source
connection_closed_count
Source
connection_created_count
Source
connection_limit_reached?
Source
connections
Source
connections_size
Source
consumer_added_count
Source
consumer_removed_count
Source
count_dead_lettered(reason : Symbol, *, dlx : Bool) : Nil
Source
current_stats_details

Like stats_details but without log

Source
data_dir
Source
dead_lettered_delivery_limit_at_most_once_count
Source
dead_lettered_delivery_limit_disabled_count
Source
dead_lettered_expired_at_most_once_count
Source
dead_lettered_expired_disabled_count
Source
dead_lettered_maxlen_at_most_once_count
Source
dead_lettered_maxlen_disabled_count
Source
dead_lettered_rejected_at_most_once_count
Source
dead_lettered_rejected_disabled_count
Source
declare_exchange(name, type, durable, auto_delete, internal = false, arguments = AMQP::Table.new, fsync = true)
Source
declare_queue(name, durable, auto_delete, arguments = AMQP::Table.new, fsync = true)
Source
delete
Source
delete_exchange(name)
Source
delete_operator_policy(name)
Source
delete_parameter(component_name, parameter_name)
Source
delete_policy(name)
Source
delete_queue(name)
Source
deliver_count
Source
deliver_get_count
Source
deliver_no_ack_count
Source
details_tuple
Source
direct_reply_consumer?(consumer_tag : String) : Client::Channel | Nil
Source
direct_reply_consumer_delete(consumer_tag : String) : Client::Channel | Nil
Source
direct_reply_consumer_has_key?(consumer_tag : String) : Bool
Source
direct_reply_consumer_set(consumer_tag : String, channel : Client::Channel) : Nil
Source
each_connection
Source
each_exchange
Source
each_queue
Source
each_session
Source
enqueue_ack(target : Persister::ConfirmTarget, id : UInt64)
Source
event_tick(event_type)
Source
exchange(name : String) : Exchange
Source
exchange?(name : String) : Exchange | Nil
Source
exchange_exists?(name : String) : Bool
Source
exchanges
Source
exchanges_any?
Source
exchanges_size
Source
flow=(active : Bool)
Source
flow?
Source
fsync_definitions

Flush definitions written with fsync: false (e.g. during bulk import).

Source
get_count
Source
get_no_ack_count
Source
inspect(io : IO)

Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.

class Person
  def initialize(@name : String, @age : Int32)
  end
end

Person.new("John", 32).inspect # => #<Person:0x10fd31f20 @name="John", @age=32>
Source
max_connections
Source
max_connections=(value : Int32) : Nil
Source
max_connections=(max_connections : Int32 | Nil)
Source
max_queues
Source
max_queues=(value : Int32) : Nil
Source
max_queues=(max_queues : Int32 | Nil)
Source
message_details
Source
mqtt_broker
Source
mqtt_exchange
Source
mqtt_permission_service
Source
mqtt_subscription_tree

Routing index for MQTT publishes. Owned by the vhost so that it exists before definitions replay; entries are sessions and x-mqtt-topic exchanges.

Source
name
Source
operator_policies
Source
parameters
Source
persister
Source
policies
Source
publish(msg : Message, immediate = false, visited = Set(AMQP::Exchange).new, found_queues = Set(AMQP::Queue).new) : AMQP::Exchange::PublishResult

Routes a message through the named exchange. Returns an AMQP::Exchange::PublishResult describing whether the message was routed to at least one queue, and whether any matched queue rejected it due to a reject-publish overflow policy. As long as at least one queue rejects the publish, the caller should NACK the publisher on confirm channels, even if other queues accepted the message (behaviour confirmed with RabbitMQ). The position of the msg.body_io should be at the start of the body When this method finishes, the position will be the same, start of the body

Source
publish_count
Source
queue(name : String) : AMQP::Queue
Source
queue?(name : String) : AMQP::Queue | Nil
Source
queue_bindings(queue : Queue)
Source
queue_declared_count
Source
queue_deleted_count
Source
queue_exists?(name : String) : Bool
Source
queue_limit_reached?
Source
queues
Source
queues_clear
Source
queues_size
Source
recv_oct_count
Source
redeliver_count
Source
register_exchange(exchange : Exchange) : Nil
Source
register_queue(queue : AMQP::Queue) : Nil
Source
reject_count
Source
replicator
Source
return_unroutable_count
Source
rm_connection(client : Client)
Source
save_operator_policies!
Source
save_parameters!
Source
save_policies!

Persist the policy/operator-policy/parameter stores; used to flush after a bulk import that created entries with save: false.

Source
send_oct_count
Source
session(name : String) : MQTT::Session
Source
session?(name : String) : MQTT::Session | Nil
Source
session_exists?(name : String) : Bool
Source
sessions
Source
sessions_clear
Source
sessions_size
Source
shovels
Source
stats_details
Source
stop_shovels
Source
sync
Source
synchronize_definitions
Source
unbind_exchange(destination, source, routing_key, arguments = AMQP::Table.new)
Source
unbind_queue(destination, source, routing_key, arguments = AMQP::Table.new)
Source
update_rates
Source
upstreams
Source
users
Source