bind exchange

This commit is contained in:
nora 2022-03-20 21:48:32 +01:00
parent b4ecb6b5d4
commit 96f2d9f4f0

View file

@ -3,6 +3,7 @@ use std::sync::{atomic::AtomicUsize, Arc};
use haesli_core::{ use haesli_core::{
amqp_todo, amqp_todo,
connection::Channel, connection::Channel,
error::ChannelException,
methods::{Method, QueueBind, QueueDeclare, QueueDeclareOk}, methods::{Method, QueueBind, QueueDeclare, QueueDeclareOk},
queue::{QueueDeletion, QueueId, QueueInner, QueueName}, queue::{QueueDeletion, QueueId, QueueInner, QueueName},
GlobalData, GlobalData,
@ -75,7 +76,7 @@ pub fn declare(channel: Channel, queue_declare: QueueDeclare) -> Result<Method>
.or_insert_with(|| queue.clone()); .or_insert_with(|| queue.clone());
} }
bind_queue(global_data.clone(), (), queue_name.to_string())?; bind_queue(global_data.clone(), "", queue_name.to_string())?;
let queue_task = QueueTask::new(global_data, event_recv, queue); let queue_task = QueueTask::new(global_data, event_recv, queue);
@ -92,7 +93,7 @@ pub fn bind(_channel_handle: Channel, _queue_bind: QueueBind) -> Result<Method>
amqp_todo!(); amqp_todo!();
} }
fn bind_queue(global_data: GlobalData, _exchange: (), routing_key: String) -> Result<()> { fn bind_queue(global_data: GlobalData, exchange: &str, routing_key: String) -> Result<()> {
let mut global_data = global_data.lock(); let mut global_data = global_data.lock();
// todo: don't // todo: don't
@ -104,8 +105,8 @@ fn bind_queue(global_data: GlobalData, _exchange: (), routing_key: String) -> Re
let exchange = global_data let exchange = global_data
.exchanges .exchanges
.get_mut("") .get_mut(exchange)
.expect("default empty exchange"); .ok_or(ChannelException::NotFound)?;
routing::bind(exchange, routing_key, queue); routing::bind(exchange, routing_key, queue);