cz.zcu.validationserver.streams
Class ThreadInputStream
java.lang.Object
java.io.InputStream
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)
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 |
instance
private static final ThreadInputStream instance
installed
private boolean installed
backupIn
private java.io.InputStream backupIn
ThreadInputStream
private ThreadInputStream()
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.