|
StreamCollector.java
Created with JBuilder |
package antLogger.logServer;
import java.io.*;
import java.net.*;
/**
* StreamCollector -
* Dieser Server erstellt einen Netzwerkserver (Klasse Server)
* und nimmt alle Daten von den Verbindungen an.
* gegen aussen stellt er einen PipedOutputstream zur Verfügung über die alle Daten von allen
* Client-Verbindungen gelesen werden können, Dabei ist nicht ersichtlich von welchem.
*
* JAVA-Logger antLogger; Projekt der HTA Luzern->Abteilung Informatik->Software Engineering
* Authoren Patrick Bründler, Pascal Mengelt, Andy Wyss, Fabian Heusser
* Teacher: Jörg Hofstetter
* School: hta.fhz.ch, Horw;
* Project Homepage: http://www.w3p.ch/antLogger/
*
*
* LEGAL NOTICE
* THIS PROJECT AND ITS FILES ARE COPYRIGHTED BY THE AUTHORS
* THIS PROJECT CAN BE COPIED, MODIFIED AND DISTRIBUTED
* UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENCE
*
* @author Fabian Heusser
* @author Patrick Bründler
* @author Pascal Mengelt
* @author Andy Wyss
* @version 1.0 $Date$ $Revision$
* @(#) StreamCollector
*/
public class StreamCollector {
private PipedOutputStream writeEnd = new PipedOutputStream();
private PipedInputStream readEnd = new PipedInputStream();
private PrintStream ps = new PrintStream(writeEnd, true); //create a smart stream with auto flush.
/**
* Konstruiert einen Message Server.
* @param port int, An welchem Port verbindugen Aktzeptiert werden.
*/
public StreamCollector (int port) {
Server s = new Server(port,this);
try {
readEnd.connect(writeEnd);
} catch (Exception ex) {ex.printStackTrace();}
}
/**
* Speist die Empfangs-Daten in eine Pipe.
* Diese Synchronisierte Methode wir von allen Client Verbindungen aufgerufen wenn sie Daten Empfangen haben.
* Diese werden dann in eine Pipe geleitet
* @param s String, Daten vom Client
*/
public synchronized void append (String s){
if (s != null){
ps.println(s);
ps.flush();
}
}
/**
* Liefert das Lese-Ende der Pipe zurück.
* @return das Lese-Ende der Pipe. (am besten mit
* BufferedReader input = new BufferedReader(new InputStreamReader(ms.getReadPipe()));
* auslesen)
*/
public PipedInputStream getReadPipe(){
return readEnd;
}
}
|
StreamCollector.java
Created with JBuilder |