void on_link_opening(proton::event &e) { proton::link& lnk = e.link(); if (lnk.is_sender()) { proton::sender &sender(lnk.sender()); proton::terminus &remote_source(lnk.remote_source()); if (remote_source.is_dynamic()) { std::string address = queue_name(); lnk.source().address(address); queue *q = new queue(true); queues[address] = q; q->subscribe(sender); std::cout << "broker dynamic outgoing link from " << address << std::endl; } else { std::string address = remote_source.address(); if (!address.empty()) { lnk.source().address(address); get_queue(address).subscribe(sender); std::cout << "broker outgoing link from " << address << std::endl; } } } else { std::string address = lnk.remote_target().address(); if (!address.empty()) lnk.target().address(address); std::cout << "broker incoming link to " << address << std::endl; } }
void on_link_open(proton::event &e) { proton::link lnk = e.link(); if (!!lnk.sender()) { proton::terminus remote_source(lnk.remote_source()); queue &q = remote_source.dynamic() ? queues_.dynamic() : queues_.get(remote_source.address()); lnk.local_source().address(q.name()); q.subscribe(lnk.sender()); std::cout << "broker outgoing link from " << q.name() << std::endl; } else { // Receiver std::string address = lnk.remote_target().address(); if (!address.empty()) { lnk.local_target().address(address); std::cout << "broker incoming link to " << address << std::endl; } } }