AMETAS.servicedev
Class AMETASServiceObject

java.lang.Object
  extended byAMETAS.servicedev.AMETASServiceObject
All Implemented Interfaces:
java.io.Serializable

public abstract class AMETASServiceObject
extends java.lang.Object
implements java.io.Serializable

Basisklasse aller Dienstobjekte. Dienstobjekte erbringen einen Dienst und werden von ServiceManagern verwaltet. Wenn ein Entwickler einen Dienst entwickelt, so muss er ein ServiceObject implementieren, das von dieser Klasse abgeleitet ist. Die Belange der Verwaltung des ServiceObjects werden weitgehend von ihm ferngehalten; sie sind Sache des ServiceManagers. Der ServiceManager empfängt die Dienstanfrage, und startet dann das ServiceObject. Das ServiceObject bearbeitet die Anfrage und veranlasst den ServiceManager durch einen Aufruf von deliverResponse, die Antwort an den Klienten zu schicken. Danach wartet der ServiceManager und mit ihm das ServiceObject auf eine neue Anfrage.

See Also:
Serialized Form

Field Summary
protected  AMETASPlace m_plThePlace
          Referenz auf die Stelle.
protected  AMETASServiceManager m_ServiceMgr
          ServiceManager, der dieses ServiceObject verwaltet.
protected  java.util.Vector m_vctServiceParams
          Die Parameter, die diesem Dienstobjekt direkt nach seinem Start über initService übergeben wurden.
 
Constructor Summary
AMETASServiceObject()
          Erzeugt ein neues ServiceObject.
 
Method Summary
 int depositMessage(AMETASMessage mes)
          Legt im Namen des ServiceManagers eine Nachricht im PostOffice ab.
 AMETASUniqueID getID()
          Liefert die eindeutige ID dieses ServiceObjects.
 AMETASPlaceUserID getPlaceUserID()
          Liefert die PlaceUserID des zuständigen ServiceManagers.
 AMETASServiceDescription[] getServiceDescriptions(java.lang.String sServiceName)
          Deprecated. Die Typeintragungen sollten alle im SPU stehen.
 void handleEvent(AMETASEvent evt)
          Behandlungen von Events.
 void initService(java.util.Vector vctServiceParams)
          Wird vom ServiceManager zu Beginn aufgerufen, um dieses ServiceObject zu initialisieren.
abstract  void startService(AMETASMessage mes)
          Führt den eigentlichen Dienst aus.
 java.lang.String toString()
          Liefert eine Stringrepräsentation dieses ServiceObjects.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_plThePlace

protected AMETASPlace m_plThePlace
Referenz auf die Stelle. Sie ermöglicht jedem ServiceObject den freien Zugriff auf die Stelle.


m_ServiceMgr

protected AMETASServiceManager m_ServiceMgr
ServiceManager, der dieses ServiceObject verwaltet.


m_vctServiceParams

protected java.util.Vector m_vctServiceParams
Die Parameter, die diesem Dienstobjekt direkt nach seinem Start über initService übergeben wurden.

Constructor Detail

AMETASServiceObject

public AMETASServiceObject()
Erzeugt ein neues ServiceObject.

Method Detail

getID

public final AMETASUniqueID getID()
Liefert die eindeutige ID dieses ServiceObjects.

Returns:
Eindeutige ID des Dienstobjekts.

initService

public void initService(java.util.Vector vctServiceParams)
Wird vom ServiceManager zu Beginn aufgerufen, um dieses ServiceObject zu initialisieren. Diese Methode kann in abgeleiteten Klassen überladen werden, wenn der Parametervektor besonders bearbeitet werden soll. Der übergebene Parametervektor wird in die Member-Variable m_vctServiceParams kopiert und steht so dem Dienstobjekt zur Verfügung.

Parameters:
vctServiceParams - Dienstparameter.

getServiceDescriptions

public AMETASServiceDescription[] getServiceDescriptions(java.lang.String sServiceName)
Deprecated. Die Typeintragungen sollten alle im SPU stehen.

Setzt den Typ des Dienstobjekts. Wird diese Methode nicht überladen, dann holt sich der ServiceManager den Typ aus dem SPU oder lässt eine Standardbeschreibung erzeugen.

Parameters:
sServiceName - Name des Dienstes inklusive Parametrisierung.
Returns:
Dienstbeschreibung (in Abhängigkeit von der Parametrisierung). Ohne Überladung wird null geliefert.

startService

public abstract void startService(AMETASMessage mes)
Führt den eigentlichen Dienst aus.

Parameters:
mes - Eingetroffene Nachricht.

handleEvent

public void handleEvent(AMETASEvent evt)
Behandlungen von Events. Falls ein Dienst sich über den Treiber des Managers fuer Events registriert hat, wird beim Eintreffen der Events diese Methode aufgerufen. Die Methode macht nichts und muss für eine gewünschte Ereignisbehandlung überschrieben werden.

Parameters:
evt - Eingetroffenes Ereignis.

getPlaceUserID

public AMETASPlaceUserID getPlaceUserID()
Liefert die PlaceUserID des zuständigen ServiceManagers.

Returns:
ID des ServiceManagers.

depositMessage

public int depositMessage(AMETASMessage mes)
Legt im Namen des ServiceManagers eine Nachricht im PostOffice ab.

Parameters:
mes - Nachricht.
Returns:
AMETASErrors.OK, falls die Nachricht ordnungsgemäß abgelegt wurde; AMETASErrors.BAD_PARAMS, falls die Nachricht leer ist oder nicht serialisiert werden kann.

toString

public java.lang.String toString()
Liefert eine Stringrepräsentation dieses ServiceObjects. Wird von der toString-Methode des ServiceManagers aufgerufen.

Returns:
Stringrepräsentation.