Package de.willuhn.jameica.messaging
Class MessagingFactory
java.lang.Object
de.willuhn.jameica.messaging.MessagingFactory
- All Implemented Interfaces:
MessagingQueue
Die Nachrichtenzentrale von Jameica ;).
Diese Klasse ermittelt beim Start alle existierenden
Nachrichtenverbraucher und stellt denen die Nachrichten
zu.
- Author:
- willuhn
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Schliesst die Queue und sendet alle noch offenen Nachrichten.voidflush()Sendet alle noch offenen Nachrichten.static MessagingFactoryLiefert die Singleton-Instanz der Messaging-Factory.getMessagingQueue(String name) Liefert eine neue Message-Queue mit dem angegebenen Namen.intLiefert die aktuelle Anzahl noch zuzustellender Nachrichten.voidqueueMessage(Message message) Stellt eine Nachricht in die Queue.voidregisterMessageConsumer(MessageConsumer consumer) Registriert einen Nachrichten-Consumer manuell in der Queue.voidsendMessage(Message message) Sendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.voidsendSyncMessage(Message message) Sendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.voidunRegisterMessageConsumer(MessageConsumer consumer) Entfernt einen Nachrichten-Consumer aus der Queue.
-
Method Details
-
getInstance
Liefert die Singleton-Instanz der Messaging-Factory.- Returns:
- Singleton-Instanz.
-
getQueueSize
public int getQueueSize()Description copied from interface:MessagingQueueLiefert die aktuelle Anzahl noch zuzustellender Nachrichten.- Specified by:
getQueueSizein interfaceMessagingQueue- Returns:
- aktuelle Queue-Groesse.
- See Also:
-
getMessagingQueue
Liefert eine neue Message-Queue mit dem angegebenen Namen. Existiert sie noch nicht, wird sie automatisch erstellt. Nachrichten, die in diese Queue gesendet werden, empfangen nur noch die Message-Consumer, die eine gleichnamige Queue abonniert haben.- Parameters:
name- Name der Queue.- Returns:
- die neue Queue.
-
registerMessageConsumer
Description copied from interface:MessagingQueueRegistriert einen Nachrichten-Consumer manuell in der Queue.- Specified by:
registerMessageConsumerin interfaceMessagingQueue- Parameters:
consumer- zu registrierender Consumer.- See Also:
-
unRegisterMessageConsumer
Description copied from interface:MessagingQueueEntfernt einen Nachrichten-Consumer aus der Queue.- Specified by:
unRegisterMessageConsumerin interfaceMessagingQueue- Parameters:
consumer- zu entfernender Consumer.- See Also:
-
close
public void close()Description copied from interface:MessagingQueueSchliesst die Queue und sendet alle noch offenen Nachrichten.- Specified by:
closein interfaceMessagingQueue- See Also:
-
sendMessage
Description copied from interface:MessagingQueueSendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendMessagein interfaceMessagingQueue- Parameters:
message- die zu versendende Nachricht.- See Also:
-
sendSyncMessage
Description copied from interface:MessagingQueueSendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendSyncMessagein interfaceMessagingQueue- Parameters:
message- die zu versendende Nachricht.- See Also:
-
queueMessage
Description copied from interface:MessagingQueueStellt eine Nachricht in die Queue. Dort bleibt sie solange, bis ein Consumer dafuer vorhanden ist.- Specified by:
queueMessagein interfaceMessagingQueue- Parameters:
message- die zu versendende Nachricht.- See Also:
-
flush
public void flush()Description copied from interface:MessagingQueueSendet alle noch offenen Nachrichten. Die Funktion kehrt erst zurueck, nachdem alle Nachrichten zugestellt wurden.- Specified by:
flushin interfaceMessagingQueue- See Also:
-