cz.zcu.validationserver.streams
Class ThreadInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by cz.zcu.validationserver.streams.ThreadInputStream
All Implemented Interfaces:
java.io.Closeable

public class ThreadInputStream
extends java.io.InputStream

Tohle je velmi zajimavy stream: Bude slouzit jako nahrada standardniho in streamu - tenhle stream ma tu nevyhodu, ze je globalni, tj. je pro vsechna vlakna stejny. Ja potrebuji, aby tyhle streamy (jak out, tak err) byly pro ruzna vlakna ruzne, tj. aby kazde vlakno melo svuj standardni vystup - ale aby do nej mohlo normalne zapisovat pres System.out a System.err. Proto tenhle stream bude umet to, ze pokazde, kdyz nekdo zavola jeho cteci metodu, koukne se, z jakeho vlakna je volany a pokud je volany z vlakna zdedeneho od OwnIOThread (vi. tenhle balik), tj. prave od vlakna, ktere chce mit vlastni I/O, cte data ze streamu nadefinovanych timto vlaknem. Pokud vlakno nerozpozna (tj. neni zdedene od OwnIOThread), cte to ze streamu, ktere byl jako standardni nastaveny puvodne. (tj. jako by tam tenhle stream vubec nebyl).

Author:
Lukas Valenta (lukas.valenta@seznam.cz)

Field Summary
private  java.io.InputStream backupIn
           
private  boolean installed
           
private static ThreadInputStream instance
           
 
Constructor Summary
private ThreadInputStream()
           
 
Method Summary
 int available()
           
 void close()
           
static void installStream()
          Metoda nainstaluje tenhle stream do Systemu (namisto stavajiciho System.in streamu).
 void mark(int readlimit)
           
 boolean markSupported()
           
 int read()
           
 void reset()
           
 long skip(long n)
           
static void uninstallStream()
          Metoda odinstaluje tenhle stream ze systemu
 
Methods inherited from class java.io.InputStream
read, read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instance

private static final ThreadInputStream instance

installed

private boolean installed

backupIn

private java.io.InputStream backupIn
Constructor Detail

ThreadInputStream

private ThreadInputStream()
Method Detail

installStream

public static void installStream()
Metoda nainstaluje tenhle stream do Systemu (namisto stavajiciho System.in streamu).


uninstallStream

public static void uninstallStream()
Metoda odinstaluje tenhle stream ze systemu


read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException

mark

public void mark(int readlimit)
Overrides:
mark in class java.io.InputStream

markSupported

public boolean markSupported()
Overrides:
markSupported in class java.io.InputStream

reset

public void reset()
           throws java.io.IOException
Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException
Overrides:
skip in class java.io.InputStream
Throws:
java.io.IOException


Copyright © 2007 University of West Bohemia, KIV, author Lukas Valenta (lvalenta at civ.zcu.cz). All Rights Reserved. Build date 20110415.