ozone core API

org.ozoneDB.DxLib.net
Class DxMultiServer

java.lang.Object
  extended byorg.ozoneDB.DxLib.DxObject
      extended byorg.ozoneDB.DxLib.DxAbstractCollection
          extended byorg.ozoneDB.DxLib.DxAbstractBag
              extended byorg.ozoneDB.DxLib.DxListBag
                  extended byorg.ozoneDB.DxLib.net.DxMultiServer
All Implemented Interfaces:
java.lang.Cloneable, DxBag, DxCollection, DxCompatible, DxListCollection, java.io.Externalizable, java.io.Serializable
Direct Known Subclasses:
InvokeServer

public abstract class DxMultiServer
extends DxListBag

DxMultiServer verwaltet mehrere DxClients - Verbindungen. Durch einen Thread wird staendig auf neue Verbindungen gewartet, durch einen weiteren auf einkommende Daten. Wird etwas empfangen, wird die Methode handleClientEvent() aufgerufen.

Version:
$Revision: 1.9 $Date: 2000/10/28 16:55:15 $
Author:
SMB
See Also:
Serialized Form

Field Summary
protected  Acceptor acceptor
           
protected  java.lang.Thread acceptThread
           
protected  java.net.ServerSocket serverSocket
           
protected  java.lang.ThreadGroup threadGroup
           
 
Fields inherited from class org.ozoneDB.DxLib.DxListBag
itemCount, start, top
 
Constructor Summary
DxMultiServer(int port)
           
 
Method Summary
 void accept()
          accept thread starten
 void close()
           
abstract  void handleClientEvent(DxMultiServerClient client, java.lang.Object event)
          diese methode wird aufgerufen, wenn an der verbindung client daten anliegen; muss ueberschrieben werden, um das applications spezifische verhalten zu bestimmen
abstract  void handleClientException(DxMultiServerClient client, java.lang.Exception e)
           
 DxMultiServerClient newClient(java.net.Socket sock)
          erzeugt einen neuen client aus einer socket-verbindung; diese methode kann ueberschrieben werden, um evtl. eigene clients einfuegen zu koennen
 java.lang.Thread newThread(java.lang.Runnable run)
          Diese Methode liefert einen neuen Thread und wird fuer die AcceptThread und den DxMultiServerClient benoetigt.
 void removeClient(DxMultiServerClient client)
           
 java.lang.ThreadGroup threadGroup()
          liefert die ThreadGroup des MultiServers.
 
Methods inherited from class org.ozoneDB.DxLib.DxListBag
add, addBack, addFront, clear, count, decCounter, head, isEmpty, iterator, tail
 
Methods inherited from class org.ozoneDB.DxLib.DxAbstractBag
equals
 
Methods inherited from class org.ozoneDB.DxLib.DxAbstractCollection
addAll, addAll, clone, contains, containsAll, readExternal, remove, removeAll, toArray, valueClone, writeExternal
 
Methods inherited from class org.ozoneDB.DxLib.DxObject
clone, isLess
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.ozoneDB.DxLib.DxCollection
addAll, addAll, clone, contains, containsAll, remove, removeAll, toArray, valueClone
 
Methods inherited from interface org.ozoneDB.DxLib.DxCompatible
equals, isLess
 

Field Detail

serverSocket

protected java.net.ServerSocket serverSocket

acceptor

protected Acceptor acceptor

acceptThread

protected java.lang.Thread acceptThread

threadGroup

protected java.lang.ThreadGroup threadGroup
Constructor Detail

DxMultiServer

public DxMultiServer(int port)
              throws java.io.IOException
Method Detail

threadGroup

public java.lang.ThreadGroup threadGroup()
liefert die ThreadGroup des MultiServers.


newThread

public java.lang.Thread newThread(java.lang.Runnable run)
Diese Methode liefert einen neuen Thread und wird fuer die AcceptThread und den DxMultiServerClient benoetigt. Sie kann ueberschrieben werden, um evtl. eigene Threads zu erzeugen (z.B. bei Verwendung eines eigenen Schedulers). Ausserdem wird der mit diesem Thread verbundene Client uebergeben (kann auch null sein !!).


newClient

public DxMultiServerClient newClient(java.net.Socket sock)
erzeugt einen neuen client aus einer socket-verbindung; diese methode kann ueberschrieben werden, um evtl. eigene clients einfuegen zu koennen


accept

public void accept()
accept thread starten


close

public void close()
           throws java.io.IOException
Throws:
java.io.IOException

removeClient

public void removeClient(DxMultiServerClient client)

handleClientEvent

public abstract void handleClientEvent(DxMultiServerClient client,
                                       java.lang.Object event)
diese methode wird aufgerufen, wenn an der verbindung client daten anliegen; muss ueberschrieben werden, um das applications spezifische verhalten zu bestimmen


handleClientException

public abstract void handleClientException(DxMultiServerClient client,
                                           java.lang.Exception e)

ozone core API

Copyright (C) The Ozone Database Project - www.ozone-db.org. All rights reserved.