/** * Adds <tt>minfo</tt> into the list of collected messages. * * @param c Conversation * @param minfo MessageInfo */ public void gotMessage(Conversation c, MessageInfo minfo) { logger.debug("Message: [" + minfo.getMessage() + "] received from: " + c.getBuddy()); synchronized (this) { collectedMessageInfo.add(minfo); notifyAll(); } }
/** * Called when the underlying implementation has received an indication that a message, sent * earlier has been successfully received by the destination. * * @param evt the MessageDeliveredEvent containing the id of the message that has caused the * event. */ public void messageDelivered(MessageDeliveredEvent evt) { logger.debug("Received a MessageDeliveredEvent: " + evt); synchronized (this) { collectedEvents.add(evt); notifyAll(); } }
/** * Blocks until at least one event is received or until waitFor miliseconds pass (whichever * happens first). * * @param waitFor the number of miliseconds that we should be waiting for an event before simply * bailing out. */ public void waitForEvent(long waitFor) { synchronized (this) { if (collectedEvents.size() > 0) return; try { wait(waitFor); } catch (InterruptedException ex) { logger.debug("Interrupted while waiting for a message evt", ex); } } }
/** * Blocks until at least one event is received or until waitFor miliseconds pass (whicever * happens first). * * @param waitFor the number of miliseconds that we should be waiting for an event before simply * bailing out. */ public void waitForEvent(long waitFor) { synchronized (this) { if (collectedMessageInfo.size() > 0) { logger.trace("evt already received. " + collectedMessageInfo); return; } try { wait(waitFor); } catch (InterruptedException ex) { logger.debug("Interrupted while waiting for a subscription evt", ex); } } }