Package de.willuhn.jameica.messaging
Class MessagingFactory
- java.lang.Object
-
- de.willuhn.jameica.messaging.MessagingFactory
-
- All Implemented Interfaces:
MessagingQueue
public final class MessagingFactory extends java.lang.Object implements MessagingQueue
Die Nachrichtenzentrale von Jameica ;). Diese Klasse ermittelt beim Start alle existierenden Nachrichtenverbraucher und stellt denen die Nachrichten zu.- Author:
- willuhn
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Schliesst die Queue und sendet alle noch offenen Nachrichten.void
flush()
Sendet alle noch offenen Nachrichten.static MessagingFactory
getInstance()
Liefert die Singleton-Instanz der Messaging-Factory.MessagingQueue
getMessagingQueue(java.lang.String name)
Liefert eine neue Message-Queue mit dem angegebenen Namen.int
getQueueSize()
Liefert die aktuelle Anzahl noch zuzustellender Nachrichten.void
queueMessage(Message message)
Stellt eine Nachricht in die Queue.void
registerMessageConsumer(MessageConsumer consumer)
Registriert einen Nachrichten-Consumer manuell in der Queue.void
sendMessage(Message message)
Sendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.void
sendSyncMessage(Message message)
Sendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.void
unRegisterMessageConsumer(MessageConsumer consumer)
Entfernt einen Nachrichten-Consumer aus der Queue.
-
-
-
Method Detail
-
getInstance
public static MessagingFactory getInstance()
Liefert die Singleton-Instanz der Messaging-Factory.- Returns:
- Singleton-Instanz.
-
getQueueSize
public int getQueueSize()
Description copied from interface:MessagingQueue
Liefert die aktuelle Anzahl noch zuzustellender Nachrichten.- Specified by:
getQueueSize
in interfaceMessagingQueue
- Returns:
- aktuelle Queue-Groesse.
- See Also:
MessagingQueue.getQueueSize()
-
getMessagingQueue
public MessagingQueue getMessagingQueue(java.lang.String name)
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
public void registerMessageConsumer(MessageConsumer consumer)
Description copied from interface:MessagingQueue
Registriert einen Nachrichten-Consumer manuell in der Queue.- Specified by:
registerMessageConsumer
in interfaceMessagingQueue
- Parameters:
consumer
- zu registrierender Consumer.- See Also:
MessagingQueue.registerMessageConsumer(de.willuhn.jameica.messaging.MessageConsumer)
-
unRegisterMessageConsumer
public void unRegisterMessageConsumer(MessageConsumer consumer)
Description copied from interface:MessagingQueue
Entfernt einen Nachrichten-Consumer aus der Queue.- Specified by:
unRegisterMessageConsumer
in interfaceMessagingQueue
- Parameters:
consumer
- zu entfernender Consumer.- See Also:
MessagingQueue.unRegisterMessageConsumer(de.willuhn.jameica.messaging.MessageConsumer)
-
close
public void close()
Description copied from interface:MessagingQueue
Schliesst die Queue und sendet alle noch offenen Nachrichten.- Specified by:
close
in interfaceMessagingQueue
- See Also:
MessagingQueue.close()
-
sendMessage
public void sendMessage(Message message)
Description copied from interface:MessagingQueue
Sendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendMessage
in interfaceMessagingQueue
- Parameters:
message
- die zu versendende Nachricht.- See Also:
MessagingQueue.sendMessage(de.willuhn.jameica.messaging.Message)
-
sendSyncMessage
public void sendSyncMessage(Message message)
Description copied from interface:MessagingQueue
Sendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendSyncMessage
in interfaceMessagingQueue
- Parameters:
message
- die zu versendende Nachricht.- See Also:
MessagingQueue.sendSyncMessage(de.willuhn.jameica.messaging.Message)
-
queueMessage
public void queueMessage(Message message)
Description copied from interface:MessagingQueue
Stellt eine Nachricht in die Queue. Dort bleibt sie solange, bis ein Consumer dafuer vorhanden ist.- Specified by:
queueMessage
in interfaceMessagingQueue
- Parameters:
message
- die zu versendende Nachricht.- See Also:
MessagingQueue.queueMessage(de.willuhn.jameica.messaging.Message)
-
flush
public void flush()
Description copied from interface:MessagingQueue
Sendet alle noch offenen Nachrichten. Die Funktion kehrt erst zurueck, nachdem alle Nachrichten zugestellt wurden.- Specified by:
flush
in interfaceMessagingQueue
- See Also:
MessagingQueue.flush()
-
-