Pacman 3D .:. www.stormzone.de/uni/pacman3d/

pacman3d.message
Class MessageService

java.lang.Object
  |
  +--pacman3d.message.MessageService
All Implemented Interfaces:
NetworkListener

public class MessageService
extends Object
implements NetworkListener

Title: Pacman 3D - Nicht wirklich ;)
Description:

Nachrichtendienst fuer den Austausch von Nachrichten zwischen "Monstern", "Pacman(s)" und anderen Subjekten des Spiels, die per Netzwerk ausgetauscht werden muessen.

Kunden benutzen die Methode send() zum Versenden einer Nachricht, und implementieren das Interface MessageListener zum ereignisgesteuerten Empfangen von Nachrichten. Nachrichten sind von der Klasse Message.

Es kann zu jeder Zeit nur eine einzige Instanz von MessageService geben. Es existiert die statische Factory- Methode getInstance, um eine Referenz auf die Instanz zu bekommen.

Eine Verwendung der Klasse koennte also wie folgt aussehen:

 oMessage = new pacman3d.message.Message();
 ... // Nachricht initialisieren, Nutzlast und Empfänger definieren
 oMessageService = pacman3d.message.MessageService.getInstance();
 oMessageService.send( oMessage );
 

Copyright: Copyright (c) 2001

Author:
Labyrinth-Gruppe

Field Summary
static int PROPAGATE_LOCAL
          Identifizierung der Propagierung "NUR LOKAL" fuer den Versand von Nachrichten.
static int PROPAGATE_NETWORK
          Identifizierung der Propagierung "NUR NETZWERK" fuer den Versand von Nachrichten.
protected static int RECEIVER_ALL
          Identifizierung der Empfaengerart "ALLE" innerhalb der vorgruppierten Empfaengerliste.
protected static int RECEIVER_GAME
          Identifizierung der Empfaengerart "GAME" innerhalb der vorgruppierten Empfaengerliste.
protected static int RECEIVER_MONSTER
          Identifizierung der Empfaengerart "MONSTER" innerhalb der vorgruppierten Empfaengerliste.
protected static int RECEIVER_PACMAN
          Identifizierung der Empfaengerart "PACMAN" innerhalb der vorgruppierten Empfaengerliste.
 
Fields inherited from interface pacman3d.net.NetworkListener
STATUS_CONNECTED, STATUS_CRASHED, STATUS_DENIED, STATUS_RECONNECT
 
Method Summary
 void addMessageListener(MessageListener oMessageListener)
          Registriert ein Objekt fuer den Empfang von Nachrichten.
 void addMessageListener(MessageListener oMessageListener, String sMessageType)
          Registriert ein Objekt fuer den Empfang von Nachrichten.
 void dispatchMessage(Message oMessage)
          Nimmt eine Nachricht von der Netzwerkschnittstelle entgegen, und verteilt sie an die entsprechenden Empfaenger.
static MessageService getInstance()
           
 void networkMessageReceived(NetworkMessage oNetworkMessage)
          Methode zum Empfangen von Nachrichten.
 void networkStatus(int iStatus)
          Methode zum Empfangen von Statusmeldungen über das Netzwerk.
 void removeMessageListener(MessageListener oMessageListener)
          De-Registriert ein Objekt fuer den Empfang von Nachrichten.
 void sendDelayedMessage(Message oMessage, long iDelayMS)
          Gibt eine Nachricht zum verzoegerten Versenden auf.
 void sendMessage(Message oMessage)
          Gibt eine Nachricht zum Versenden auf.
 void sendMessage(Message oMessage, boolean bLocalLoopback)
          Gibt eine Nachricht zum Versenden auf.
 void sendMessage(Message oMessage, int iPropagation)
          Gibt eine Nachricht zum Versenden auf.
 void sendMessage(Message oMessage, int iPropagation, long iDelayMS)
          Gibt eine Nachricht zum verzoegerten Versenden auf.
 void setNetworkService(NetworkService oNetworkService)
          Setzt die Instanz von NetworkService, die von dem MessageService verwendet werden soll, um Nachrichten auch ueber das Netzwerk zu senden.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RECEIVER_PACMAN

protected static final int RECEIVER_PACMAN
Identifizierung der Empfaengerart "PACMAN" innerhalb der vorgruppierten Empfaengerliste.


RECEIVER_MONSTER

protected static final int RECEIVER_MONSTER
Identifizierung der Empfaengerart "MONSTER" innerhalb der vorgruppierten Empfaengerliste.


RECEIVER_GAME

protected static final int RECEIVER_GAME
Identifizierung der Empfaengerart "GAME" innerhalb der vorgruppierten Empfaengerliste.


RECEIVER_ALL

protected static final int RECEIVER_ALL
Identifizierung der Empfaengerart "ALLE" innerhalb der vorgruppierten Empfaengerliste.


PROPAGATE_NETWORK

public static final int PROPAGATE_NETWORK
Identifizierung der Propagierung "NUR NETZWERK" fuer den Versand von Nachrichten. Fuer kombinierte Propagierung sind die entsprechenden Konstanten additiv zu kombinieren.


PROPAGATE_LOCAL

public static final int PROPAGATE_LOCAL
Identifizierung der Propagierung "NUR LOKAL" fuer den Versand von Nachrichten. Fuer kombinierte Propagierung sind die entsprechenden Konstanten additiv zu kombinieren.

Method Detail

getInstance

public static MessageService getInstance()

setNetworkService

public void setNetworkService(NetworkService oNetworkService)
Setzt die Instanz von NetworkService, die von dem MessageService verwendet werden soll, um Nachrichten auch ueber das Netzwerk zu senden.


addMessageListener

public void addMessageListener(MessageListener oMessageListener)
Registriert ein Objekt fuer den Empfang von Nachrichten. Objekte muessen sich registrieren, bevor sie Nachrichten empfangen koennen!

Parameters:
oMessageListener - Ein Objekt einer beliebigen Klasse, die das Interface MessageListener implementiert. Dieses Objekt wird in Zukunft Nachrichten von dem MessageService erhalten.

removeMessageListener

public void removeMessageListener(MessageListener oMessageListener)
De-Registriert ein Objekt fuer den Empfang von Nachrichten. Dadurch erhaelt das Objekt keine weiteren Nachrichten mehr.

Parameters:
oMessageListener - Ein Objekt einer beliebigen Klasse, die das Interface MessageListener implementiert. Dieses Objekt wird in Zukunft keine Nachrichten mehr von dem MessageService erhalten.

addMessageListener

public void addMessageListener(MessageListener oMessageListener,
                               String sMessageType)
Registriert ein Objekt fuer den Empfang von Nachrichten. Objekte muessen sich registrieren, bevor sie Nachrichten empfangen koennen! Es kann zusaetzlich ein Typ von Nachrichten benannt werden, die empfangen werden sollen.

Parameters:
oMessageListener - Ein Objekt einer beliebigen Klasse, die das Interface MessageListener implementiert. Dieses Objekt wird in Zukunft Nachrichten von dem MessageService erhalten.
sMessageType - Der Name eines Typs von Nachrichten, die empfangen werden sollen.

sendMessage

public void sendMessage(Message oMessage)
                 throws MissingMessageSenderException
Gibt eine Nachricht zum Versenden auf. Die Nachricht wird an alle entfernten Rechner und an den lokalen Rechner gesendet.

Parameters:
oMessage - Die zu versendende Nachricht.
See Also:
Message

sendDelayedMessage

public void sendDelayedMessage(Message oMessage,
                               long iDelayMS)
                        throws MissingMessageSenderException
Gibt eine Nachricht zum verzoegerten Versenden auf. Die Nachricht wird an alle entfernten Rechner und an den lokalen Rechner gesendet.

Parameters:
oMessage - Die zu versendende Nachricht.
iDelayMS - Die Anzahl Millisekunden, die die Nachricht verzoegert werden soll. Ein Wert von 0 entspricht dem unverzoegerten Versenden.
See Also:
Message

sendMessage

public void sendMessage(Message oMessage,
                        boolean bLocalLoopback)
                 throws MissingMessageSenderException
Gibt eine Nachricht zum Versenden auf. Die Nachricht wird an alle entfernten Rechner gesendet, und optional auch an den lokalen Rechner.

Parameters:
oMessage - Die zu versendende Nachricht.
bLocalLoopback - true, wenn die Nachricht auch auf dem lokalen Rechner versendet werden soll. Anderenfalls wird sie nur auf den entfernten Rechnern versendet.
See Also:
Message

sendMessage

public void sendMessage(Message oMessage,
                        int iPropagation)
                 throws MissingMessageSenderException
Gibt eine Nachricht zum Versenden auf. Die Nachricht wird an alle entfernten Rechner und/oder an den lokalen Rechner versendet.

Parameters:
oMessage - Die zu versendende Nachricht.
iPropagation - Eine (oder mehrere) der PROPAGATE_...- Konstanten. Dieser Parameter definiert, ob die Nachricht nur lokal, nur ueber das Netzwerk, oder sowohl als auch versendet werden soll. Fuer kombinierte Propagierung sind die entsprechenden Konstanten additiv zu kombinieren.
See Also:
Message

sendMessage

public void sendMessage(Message oMessage,
                        int iPropagation,
                        long iDelayMS)
                 throws MissingMessageSenderException
Gibt eine Nachricht zum verzoegerten Versenden auf. Die Nachricht wird an alle entfernten Rechner und/oder an den lokalen Rechner versendet.

Parameters:
oMessage - Die zu versendende Nachricht.
iPropagation - Eine (oder mehrere) der PROPAGATE_...- Konstanten. Dieser Parameter definiert, ob die Nachricht nur lokal, nur ueber das Netzwerk, oder sowohl als auch versendet werden soll. Fuer kombinierte Propagierung sind die entsprechenden Konstanten additiv zu kombinieren.
iDelayMS - Die Anzahl Millisekunden, die die Nachricht verzoegert werden soll. Ein Wert von 0 entspricht dem unverzoegerten Versenden.
See Also:
Message

dispatchMessage

public void dispatchMessage(Message oMessage)
Nimmt eine Nachricht von der Netzwerkschnittstelle entgegen, und verteilt sie an die entsprechenden Empfaenger.


networkStatus

public void networkStatus(int iStatus)
Methode zum Empfangen von Statusmeldungen über das Netzwerk.

Specified by:
networkStatus in interface NetworkListener
Following copied from interface: pacman3d.net.NetworkListener
Parameters:
status - der Netzwerkschichtstatus

networkMessageReceived

public void networkMessageReceived(NetworkMessage oNetworkMessage)
Methode zum Empfangen von Nachrichten. Wird beim Erhalt einer Nachricht aufgerufen.

Specified by:
networkMessageReceived in interface NetworkListener
Following copied from interface: pacman3d.net.NetworkListener
Parameters:
message - Nachrichtenobjekt

Pacman 3D .:. www.stormzone.de/uni/pacman3d/