AMETAS.servicedev
Interface AMETASServiceManagerDriverIf

All Superinterfaces:
AMETASPlaceUserDriverIf

public interface AMETASServiceManagerDriverIf
extends AMETASPlaceUserDriverIf

Schnittstelle zu einem ServiceManager-Treiber. Die Klasse AMETASServiceManager enthält eine Instanzvariable dieses Typs, in der eine Instanz der Klasse AMETASServiceManagerDriver gespeichert wird.


Method Summary
 void bookServiceAccount(AMETASPlaceUserID puidClient, long nAccount)
          Wird vom Dienstobjekt aufgerufen, um eine Abrechnung des Accounts durchzuführen.
 AMETASPlace getPlace()
          Liefert eine Referenz auf die Stelle.
 void idle()
          Lässt den Treiber anhalten.
 void importClasses(java.lang.String sSCCFile)
          Importiert einen SignedClass-Container (SCC).
 boolean openSessions()
          Fragt beim SessionManager nach, ob es noch offene Sitzungen gibt.
 int sessionEnded(AMETASPlaceUserID idClient)
          Wird aufgerufen, wenn der verwaltete Dienst sitzungsorientiert ist und ein Klient seine Sitzung beendet.
 void sessionStarted(AMETASPlaceUserID idNewClient)
          Wird aufgerufen, wenn der verwaltete Dienst sitzungsorientiert ist und ein Klient eine neue Sitzung eröffnet.
 void trace(java.lang.String sText, java.lang.Throwable e)
          Bietet die Möglichkeit der Traceausgabe inklusive Stacktrace.
 
Methods inherited from interface AMETAS.place.AMETASPlaceUserDriverIf
addPUType, createTypeForString, createTypeForString, deleteMessage, depositMessage, depositMessage, depositRemoteMessage, fullPrivileges, getClass, getDestinationPlace, getDestinationPlace, getFile, getHostName, getLeavingTime, getLeavingTime, getMediatorInfo, getMessages, getMessages, getMessagesAsVector, getMessagesAsVector, getPermissionList, getPlaceName, getPlaceUserID, getPrivileges, getPUTypes, getSecurityFeature, getStarterID, getTypesOf, getTypesOf, idle, killPlaceUser, output, privilegeGranted, registerEventListener, registerEventListener, registerEventListener, registerServiceResponseListener, request, request, requestPUStartup, requestPUStartup, requestService_WaitAndUnregister, requestService_WaitAndUnregister, setSecurityFeature, spawnAgent, stillPresent, stillPresent, stopDriver, stopPlace, suitableForMediator, trace, unknownPrivileges, unregisterEventListener, updateRegistration, useRequestedService, useRequestedService, wakeup
 

Method Detail

sessionStarted

public void sessionStarted(AMETASPlaceUserID idNewClient)
Wird aufgerufen, wenn der verwaltete Dienst sitzungsorientiert ist und ein Klient eine neue Sitzung eröffnet. Diese Methode trägt die neue Sitzung im SessionManager der Stelle ein, wo alle Sitzungen vermerkt sind.

Parameters:
idNewClient - ID des Klienten.

sessionEnded

public int sessionEnded(AMETASPlaceUserID idClient)
Wird aufgerufen, wenn der verwaltete Dienst sitzungsorientiert ist und ein Klient seine Sitzung beendet. Diese Methode trägt die Sitzung im SessionManager der Stelle aus, wo alle Sitzungen vermerkt sind.

Parameters:
idClient - ID des Klienten.
Returns:
AMETASErrors.OK, wenn kein Fehler auftrat; AMETASErrors.NOT_FOUND, wenn die Sitzung nicht registriert ist.

openSessions

public boolean openSessions()
Fragt beim SessionManager nach, ob es noch offene Sitzungen gibt.

Returns:
true, wenn es noch offene Sitzungen gibt.

getPlace

public AMETASPlace getPlace()
Liefert eine Referenz auf die Stelle. ServiceManager sind die einzigen PlaceUser, die direkten Zugriff auf die Stelle haben. Mit ihnen haben auch die verwalteten Dienstobjekte freien Zugriff auf die Stellen. Dies stellt insofern keine Bedrohung dar, als es nur dem Administrator der Stelle erlaubt ist, Dienste zu installieren; es liegt also in seiner Verantwortung, den Dienst zu installieren.

Returns:
Referenz auf die Stelle.

trace

public void trace(java.lang.String sText,
                  java.lang.Throwable e)
Bietet die Möglichkeit der Traceausgabe inklusive Stacktrace. Diese Ausgabe kostet den Dienst nichts.

Parameters:
sText - Auszugebender Text.
e - Fehler oder Ausnahme, deren Stacktrace ausgegeben werden soll.

idle

public void idle()
Lässt den Treiber anhalten. Ein Dienst darf sich - anders als Agenten - beliebig lange suspendieren.

See Also:
AMETASPlaceUserDriver.idle(long)

bookServiceAccount

public void bookServiceAccount(AMETASPlaceUserID puidClient,
                               long nAccount)
Wird vom Dienstobjekt aufgerufen, um eine Abrechnung des Accounts durchzuführen.

Parameters:
puidClient - ID des Klienten.
nAccount - Kosten der Dienstnutzung.

importClasses

public void importClasses(java.lang.String sSCCFile)
                   throws java.io.FileNotFoundException,
                          java.io.IOException,
                          java.security.SignatureException,
                          java.io.InvalidClassException
Importiert einen SignedClass-Container (SCC). SignedClass-Container beinhalten Klassen mitsamt einer Signatur. Damit ist es möglich, Klassen zur Laufzeit nachzuladen, ohne dass sie im SPU-Container des Stellennutzers enthalten sein müssen oder dass der SPU-Container bekannt sein muss. Klassen, die einmal importiert wurden, können nicht mehr entfernt oder redefiniert werden. In diesem Falle muss der gesamte Klassenlader (und damit auch der Stellennutzer) entfernt werden.

Parameters:
sSCCFile - Dateiname des SCC mit Endung und Pfad.
Throws:
java.io.FileNotFoundException - wenn der Container nicht gefunden wurde. Tritt auch auf, wenn dieser Stellennutzer (fälschlicherweise) nicht vom lokalen Dateisystem stammt.
java.io.IOException - wenn der Container nicht geladen werden konnte.
java.security.SignatureException - wenn die Signaturen nicht korrekt sind.
java.io.InvalidClassException - wenn eine Klasse bereits geladen ist und erneut geladen werden soll.
See Also:
AMETASSCContainer