def initialize (otherStream=nil)
if otherStream
@wrapped_stream = otherStream
@at_beginning_proc = proc {otherStream.at_beginning?}
@at_end_proc = proc {otherStream.at_end?}
@forward_proc = proc {otherStream.basic_forward}
@backward_proc = proc {otherStream.basic_backward}
@set_to_end_proc = proc {otherStream.set_to_end}
@set_to_begin_proc = proc {otherStream.set_to_begin}
end
yield self if block_given?
@at_beginning_proc = proc {true} unless @at_beginning_proc
@at_end_proc = proc {true} unless @at_end_proc
end