DisTAnz 1.0

DTA.agent
Class RequestServerData

java.lang.Object
  |
  +--DTA.agent.RequestServerData

public class RequestServerData
extends java.lang.Object
implements java.lang.Runnable

RequestServerData wartet in einem eigenen Thread auf Datenanfragen von Managern. Kommt eine Anfrage herein, wird ein neuer RequestHandlerData in einem eigenen Thread zur Beantwortung gestartet.

Zur Realisierung des Threads wird das Runnable-Interface implementiert.

Erstellt: Tue Jun 13 14:12:39 2000

Version:
1.4
Author:
Karsten Römling

Field Summary
private  DataStorage dStorage
          Zum Zugriff auf die Verkehrsflussdaten.
private  ManagerData mData
          Zum Zugriff auf die Managerdaten.
private  int port
          Der Port, auf dem der RequestServerData lauscht.
private  java.lang.Thread srvThread
          Dient der Threadkontrolle (start/die).
private  java.net.ServerSocket sSocket
          Der ServerSocket für das Warten auf eine Verbindungsanforderung.
 
Constructor Summary
RequestServerData(int port, ManagerData mData, DataStorage dStorage)
          Erzeugt einen neuen RequestHandlerData.
 
Method Summary
 void die()
          Hält den RequestServerData wieder an.
static void main(java.lang.String[] args)
          Testet die Funktionalität der RequestServerData-Klasse.
 void run()
          Solange myThread == Thread.currentThread() true ist, wird hier auf einen Verbindungsaufbau auf den sSocket gewartet.
 void start()
          Startet den RequestServerData.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

port

private int port
Der Port, auf dem der RequestServerData lauscht.

sSocket

private java.net.ServerSocket sSocket
Der ServerSocket für das Warten auf eine Verbindungsanforderung.

mData

private ManagerData mData
Zum Zugriff auf die Managerdaten.

dStorage

private DataStorage dStorage
Zum Zugriff auf die Verkehrsflussdaten.

srvThread

private java.lang.Thread srvThread
Dient der Threadkontrolle (start/die).
Constructor Detail

RequestServerData

public RequestServerData(int port,
                         ManagerData mData,
                         DataStorage dStorage)
                  throws java.io.IOException

Erzeugt einen neuen RequestHandlerData. Dieser lauscht auf dem angegebenen Port. Der erzeugte RequestServerData muß im Anschluß mir start() gestartet werden.

Tritt bei der Erzeugung des ServerSocket ein Fehler auf, wird eine IOException erzeugt.

Parameters:
port - Der Port auf dem der RequestServerData lauschen soll. Ein Wert vom Typ int.
mData - Eine Instanz von managerData, zur Speicherung der Managerdaten.
dStorage - Eine Instanz von DataStorage, zum Zugriff auf die Verkehrsflussdaten.
Throws:
java.io.IOException - im Fehlerfall.
Method Detail

start

public void start()
Startet den RequestServerData. Dieser läuft dann solange, bis er mit die() wieder angehalten wird.

run

public void run()
Solange myThread == Thread.currentThread() true ist, wird hier auf einen Verbindungsaufbau auf den sSocket gewartet. Erfolgt ein solcher, wird das zurückgelieferte Socket-Objekt an einen neu gestarteten RequestHandlerData übergeben. Tritt hierbei ein Fehler auf, wird der Socket wieder geschlossen, andernfalls obliegt dies dem RequestHandlerData.
Specified by:
run in interface java.lang.Runnable

die

public void die()
Hält den RequestServerData wieder an. Der Thread wird allerdings erst nach der nächsten Anfrage beendet.

main

public static void main(java.lang.String[] args)
                 throws java.io.IOException,
                        java.lang.InterruptedException
Testet die Funktionalität der RequestServerData-Klasse.
Parameters:
args - Wird nicht genutzt.
Throws:
java.io.IOException - im Fehlerfall.
java.lang.InterruptedException - im Falle einer Unterbechung.

DisTAnz 1.0

Copyright 2000 I. Rekik, M. Zouari, C. Apachite, K. Römling, S. Henze
All rights reserved.