public void channelConnected(Channel channel) { for (ChannelListener l : channel_listeners) { try { l.channelConnected(channel); } catch (Throwable t) { log.warn("notifying channel listener " + l + " failed", t); } } }
public void channelConnected(Channel channel) { synchronized (additionalChannelListeners) { for (Iterator i = additionalChannelListeners.iterator(); i.hasNext(); ) { ChannelListener l = (ChannelListener) i.next(); try { l.channelConnected(channel); } catch (Throwable t) { log.warn("channel listener failed", t); } } } }
@Override public String amqpRegister(User user) throws Exception { try { Channel rabbitMqChannel = rabbitMqConnection.createChannel(); // create or get user queue AMQP.Queue.DeclareOk queue = rabbitMqChannel.queueDeclare( "USER_".concat(String.valueOf(user.hashCode())), true, // durable false, // exclusive false, // auto delete null // no arguments ); Map<String, Object> bindParams = new HashMap<>(); bindParams.put(ARGUMENT_TO_ID, user.getId()); rabbitMqChannel.queueBind(queue.getQueue(), amqpExchange, "", bindParams); channelListener.registerChannel(rabbitMqChannel, queue.getQueue(), false); // add user channel to active channels USER_CHANNEL.put(user, rabbitMqChannel); return queue.getQueue(); } catch (Exception e) { logger.info("### Couldn't create user queue .. -> {" + e.getMessage() + "}"); throw e; } }
@Override public void unregisterChannelListener(ChannelListener channelListener) { lock.lock(); try { List<ChannelListener> channelListeners = _getChannelListeners(); channelListeners.remove(channelListener); } finally { lock.unlock(); } channelListener.channelListenerRemoved(_userId); }
@SuppressWarnings({"unchecked"}) public void handleDone(final Channel channel, final ChannelListener channelListener) { channelListener.handleEvent(channel); }
protected void notifyChannelListeners() { for (ChannelListener channelListener : _getChannelListeners()) { channelListener.notificationEventsAvailable(_userId); } }