/******************************************************************************************************************* * * * ******************************************************************************************************************/ public synchronized void registerPendingMessage (final @Nonnull Object message) { log.trace("registerPendingMessage({})", message); if (message.getClass().getAnnotation(Message.class).daemon()) { pendingMessages.add(new IdentityWrapper(message)); notifyAll(); log(); } }
/******************************************************************************************************************* * * * ******************************************************************************************************************/ public synchronized void unregisterDeliveringMessage (final @Nonnull Object message) { log.trace("unregisterDeliveringMessage({})", message); if (message.getClass().getAnnotation(Message.class).daemon()) { deliveringMessages.remove(message); notifyAll(); log(); eventuallySendCompletionMessage(message); } }
/******************************************************************************************************************* * * * ******************************************************************************************************************/ public synchronized void unregisterPendingMessage (final @Nonnull Object message) { log.trace("unregisterPendingMessage({})", message); if (message.getClass().getAnnotation(Message.class).daemon()) { pendingMessages.remove(new IdentityWrapper(message)); notifyAll(); log(); eventuallySendCompletionMessage(message); } }
/******************************************************************************************************************* * * * ******************************************************************************************************************/ public synchronized void registerDeliveringMessage (final @Nonnull Object message) { log.trace("registerDeliveringMessage({})", message); if (message.getClass().getAnnotation(Message.class).daemon()) { deliveringMessages.add(message); // Do this *after* enlisting message in deliveringMessages if (!collaborationStartedMessageSent && ! (message instanceof CollaborationStartedMessage)) { CollaborationStartedMessage.forCollaboration(this).send(); collaborationStartedMessageSent = true; } notifyAll(); log(); } }