X-Git-Url: http://nitlanguage.org diff --git a/lib/filter_stream.nit b/lib/filter_stream.nit deleted file mode 100644 index f1537e4..0000000 --- a/lib/filter_stream.nit +++ /dev/null @@ -1,139 +0,0 @@ -# This file is part of NIT ( http://www.nitlanguage.org ). -# -# Copyright 2006 Floréal Morandat -# Copyright 2009 Jean-Sebastien Gelinas -# -# This file is free software, which comes along with NIT. This software is -# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. You can modify it is you want, provided this header -# is kept unaltered, and a notification of the changes is added. -# You are allowed to redistribute it and sell it, alone or is a part of -# another product. - -class FilterReader - super Reader - # Filter readed elements - var stream: nullable Reader = null - - redef fun eof: Bool - do - assert stream != null - return stream.eof - end -end - -class FilterWriter - super Writer - # Filter outputed elements - var stream: nullable Writer = null - - # Can the stream be used to write - redef fun is_writable: Bool - do - assert stream != null - return stream.is_writable - end -end - -class StreamCat - super FilterReader - private var streams: Iterator[Reader] - - redef fun eof: Bool - do - if stream == null then - return true - else if stream.eof then - stream.close - stream = null - return eof - else - return false - end - end - - redef fun stream: nullable Reader - do - var res = super - if res == null and _streams.is_ok then - res = _streams.item - stream = res - assert stream != null - _streams.next - end - return res - end - - redef fun read_char - do - assert not eof - return stream.read_char - end - - redef fun close - do - while stream != null do - stream.close - stream = null - end - end - - init with_streams(streams: Array[Reader]) - do - _streams = streams.iterator - end - - init(streams: Reader ...) is old_style_init do - _streams = streams.iterator - end -end - -class StreamDemux - super FilterWriter - private var streams: Array[Writer] - - redef fun is_writable: Bool - do - if stream.is_writable then - return true - else - for i in _streams - do - if i.is_writable then - return true - end - end - return false - end - end - - redef fun write(s: Text) - do - for i in _streams - do - stream = i - if stream.is_writable then - stream.write(s) - end - end - end - - redef fun close - do - for i in _streams - do - stream = i - stream.close - end - end - - init with_streams(streams: Array[Writer]) - do - _streams = streams - end - - init(streams: Writer ...) is old_style_init do - _streams = streams - end -end